home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 / Aminet - June 1993 [Walnut Creek].iso / usenet / sources / volume90 / libraris / reqlib12 / part01 next >
Encoding:
Internet Message Format  |  1990-09-28  |  61.1 KB

  1. Path: abcfd20.larc.nasa.gov!amiga-request
  2. From: amiga-request@abcfd20.larc.nasa.gov (Amiga Sources/Binaries Moderator)
  3. Subject: v90i259: requester.library 1.2 - requester library, Part01/03
  4. Reply-To: Paul-Erik Raue <peraue@cs.vu.nl>
  5. Newsgroups: comp.sources.amiga
  6. Message-ID: <comp.sources.amiga:v90i259@abcfd20.larc.nasa.gov>
  7. Date: 28 Sep 90 18:45:33 GMT
  8. Approved: tadguy@uunet.UU.NET (Tad Guy)
  9. X-Mail-Submissions-To: amiga@uunet.uu.net
  10. X-Post-Discussions-To: comp.sys.amiga
  11.  
  12. Submitted-by: Paul-Erik Raue <peraue@cs.vu.nl>
  13. Posting-number: Volume 90, Issue 259
  14. Archive-name: libraries/reqlib-1.2/part01
  15.  
  16. [ uuencoded objects, icons, and sample program included  ...tad ]
  17.  
  18. [ from the read.me ... ]
  19. Req.library adds user-friendliness to the Amiga's user interface.
  20. While Intuition does supply requesters, they have certain limitations
  21. and are awkward to set up.  We designed ours to be quick and easy to
  22. set up, as well as adding features.  The text requester has PRINTF
  23. style formatting built in!  There is a colour requester, a very
  24. powerful file requester, a string requester (allowing the user to
  25. enter a line of text), and an integer requester (allowing the user to
  26. enter an integer number).  There are also low-level support routines,
  27. such as routines to create any of the Amiga's gadgets, as well as a
  28. real-time scroll routine.
  29.  
  30. #!/bin/sh
  31. # This is a shell archive.  Remove anything before this line, then unpack
  32. # it by saving it into a file and typing "sh file".  To overwrite existing
  33. # files, type "sh file -c".  You can also feed this as standard input via
  34. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  35. # will see the following message at the end:
  36. #        "End of archive 1 (of 3)."
  37. # Contents:  .info.uu ShowOffReq.uu areqglue.o.uu customizefi.uu
  38. #   customizefile.asm lreqglue.o.uu macros.i read.me read.me.uu
  39. #   req.doc.uu req.h reqbase.h reqglue.asm reqproto.h showoffreq.uu
  40. # Wrapped by tadguy@abcfd20 on Fri Sep 28 14:45:29 1990
  41. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  42. if test -f '.info.uu' -a "${1}" != "-c" ; then 
  43.   echo shar: Will not clobber existing file \"'.info.uu'\"
  44. else
  45. echo shar: Extracting \"'.info.uu'\" \(94 characters\)
  46. sed "s/^X//" >'.info.uu' <<'END_OF_FILE'
  47. Xbegin 666 .info
  48. XK\TP`$@``$0T```-]```&!U-H;W=/9F9297$*<F5Q+F1O8PIR96%D+FUE"@``&
  49. X``
  50. Xend
  51. Xsize 43
  52. END_OF_FILE
  53. if test 94 -ne `wc -c <'.info.uu'`; then
  54.     echo shar: \"'.info.uu'\" unpacked with wrong size!
  55. fi
  56. # end of '.info.uu'
  57. fi
  58. if test -f 'ShowOffReq.uu' -a "${1}" != "-c" ; then 
  59.   echo shar: Will not clobber existing file \"'ShowOffReq.uu'\"
  60. else
  61. echo shar: Extracting \"'ShowOffReq.uu'\" \(652 characters\)
  62. sed "s/^X//" >'ShowOffReq.uu' <<'END_OF_FILE'
  63. Xbegin 666 ShowOffReq.info
  64. XMXQ```0`````!'``8`#(`%0`%``,``0`C?=``````````````````````````I
  65. XM`````R,``````````````1@````-```````````````````````R`!4``@`!6
  66. XMK6@#`````````````````````````````!____``````&```,``````8```PU
  67. XM`````!@#@#``````&!_P,``````8_'XP`````!@?\#``````&`.`,``````8>
  68. XM```P`````!@``#`````'G___\\````X`````X```'______P````````````(
  69. XM`#_____DF```/______X````````````````````````````````````````K
  70. XM``````!____\`````&````P`````9___S`````!F``#,`````&8#@,P`````]
  71. XM9AQPS`````!FX`[,`````&8<<,P`````9@.`S`````!F``#,````#^?__\_@F
  72. XM```?X```#_```#______^```?______\``#_______[``/_______\``____8
  73. X=___^P`#_______X```````````````````````#_T
  74. X``
  75. Xend
  76. Xsize 434
  77. END_OF_FILE
  78. if test 652 -ne `wc -c <'ShowOffReq.uu'`; then
  79.     echo shar: \"'ShowOffReq.uu'\" unpacked with wrong size!
  80. fi
  81. # end of 'ShowOffReq.uu'
  82. fi
  83. if test -f 'areqglue.o.uu' -a "${1}" != "-c" ; then 
  84.   echo shar: Will not clobber existing file \"'areqglue.o.uu'\"
  85. else
  86. echo shar: Extracting \"'areqglue.o.uu'\" \(1794 characters\)
  87. sed "s/^X//" >'areqglue.o.uu' <<'END_OF_FILE'
  88. Xbegin 666 areqglue.o
  89. XM04H``````````````F0````````````?````"0"S`3D!.<``'R!O``1,[P`#P
  90. XM``A(>/_B8``?`;Y,[P`#``1(>/_<8``!L!M(YS@R3.\`!P`<+&W0`G``'TZN=
  91. XM_]9,WTP<3G5(YS@R3.\5``<`'"QMT`)P`!].KO_03-],'$YU2.<X,DSO%0<`"
  92. XM`!PL;=`"<``?3J[_RDS?3!Q.=2!O``1(>!__K&```5P@+P`$2'C_IF``'P%03
  93. XM(&\`!$AX_T!@``%$2.<=.#(@;P`<3.\`#P`@+&W0`G``'TZN_Z!,WTP<3G5(U
  94. XMYS@R3.\;!P``'$SO``<`*"QMT`)P`!].KO^:3-],'$YU2.<X,B!O&0`<3.\`Q
  95. XM#P`@+&W0`G``'TZN_Y1,WTP<3G4@;P`$2'@?_XY@``#B2'C_B&```-I,[Q\#M
  96. XM`0`$P8A(>/^"8```RB!O'P`$3.\``P`(2'C_?&```+@?(&\`!$SO``,`"$AX\
  97. XM_W9@`!\`IDCG.#),[PL``!Q,[P`#$P`H+&W0`G``'TZN_W!,WTP<3G5(YS@RB
  98. XM3.\;#P``'$SO``\`+"QMT`)P`!].KO]J3-],'$YU2.<X,DSO&PD``!Q,[P`?:
  99. XM`"0L;=`"<``?3J[_9$S?3!Q.=4CG.#),[QL'```<3.\``P`H+&W0`G``'TZN!
  100. XM_UY,WTP<3G4@;P`$2'@?_UA@(B!O``1(>/]28!@@;Q\`!$AX_TQ@#DSO``,`#
  101. XM!"!O'P`,2'C_1DAZ`!HO+P`$+TX3``@L;=`"<``?+P`@#M&O``0@'TYU+%]./
  102. XM=1\@($]K("``0V%N8V5L`%)E'W-U;64``"!O``1#[P`(8!8?(&\`!$/O``A(;
  103. XMYR`X1?K_TA]'^O_58`I(YR`XE<I'^O_0$2QMT`)P`!^>_``N*$]T%D)<4<K_O
  104. XM_"Z('R])``0O2@`0+TL`%#]\__\?`!P@3TZN_U+>_``N3-\<!!%.=0`'"```*
  105. XM7U)E<4)A<V4``@@``%]#96YT97(``@@`$E]39713:7IE``((`"!?4V5T3&]CA
  106. XM871I;VX``@@`.%]296%D3&]C871I;VX``@@`4%]&;W)M870``@@`:%]&:6QED
  107. XM4F5Q=65S=&5R``((`'1?0V]L;W)297%U97-T97(``@@`@%]%>'1E;F1E9$-OH
  108. XM;&]R4F5Q=65S=&5R``((`(Q?1')A=T)O>``""`"H7TUA:V5"=71T;VX``@@`.
  109. XMQE]-86ME4V-R;VQL0F%R``((`.)?4'5R9V5&:6QE<P`""`#N7T=E=$9O;G1(^
  110. XM96EG:'1!;F17:61T:``""`#V7TUA:V5'861G970``@@!!E]-86ME4W1R:6YGR
  111. XM``((`1A?36%K95!R;W```@@!*E],:6YK1V%D9V5T``((`4A?3&EN:U-T<FEN?
  112. XM9T=A9&=E=``""`%F7TQI;FM0<F]P1V%D9V5T``((`81?1V5T4W1R:6YG``((-
  113. XM`:)?4F5A;%1I;6538W)O;&P``@@!K%]497AT4F5Q=65S=``""`&V7T=E=$QOC
  114. XM;F<``@@!P%]287=+97E4;T%S8VEI``((`<Y*=6UP270``@@!ZE-T86-K0VQEO
  115. XM86YU<``""`($7U-I;7!L95)E<75E<W0``@@"#E]4=V]'861297%U97-T``((H
  116. XE`A94=V]'861297%U97-T``((`B13:6UP;&5297%U97-T`````'%UP
  117. X``
  118. Xend
  119. Xsize 1252
  120. END_OF_FILE
  121. if test 1794 -ne `wc -c <'areqglue.o.uu'`; then
  122.     echo shar: \"'areqglue.o.uu'\" unpacked with wrong size!
  123. fi
  124. # end of 'areqglue.o.uu'
  125. fi
  126. if test -f 'customizefi.uu' -a "${1}" != "-c" ; then 
  127.   echo shar: Will not clobber existing file \"'customizefi.uu'\"
  128. else
  129. echo shar: Extracting \"'customizefi.uu'\" \(335 characters\)
  130. sed "s/^X//" >'customizefi.uu' <<'END_OF_FILE'
  131. Xbegin 666 customizefile
  132. XM```#\P`````````#``````````(````6````!0````$```/I````%BQX``1#$
  133. XM^0````AP`$ZN_=@CP`````!G*")`0?H`)B`(('S___^L3J[^7"/`````!'#_0
  134. XM3J[^MG(!X:D@`4ZN_L).=3%\`!0`&@"H```!@``>(GD````$3M$```/L````<
  135. XM!`````$````&````$@```"P```!2`````````_(```/J````!0``````````"
  136. X<<F5Q+FQI8G)A<GD````#\@```^L````!```#\O(`V
  137. X``
  138. Xend
  139. Xsize 208
  140. END_OF_FILE
  141. if test 335 -ne `wc -c <'customizefi.uu'`; then
  142.     echo shar: \"'customizefi.uu'\" unpacked with wrong size!
  143. fi
  144. # end of 'customizefi.uu'
  145. fi
  146. if test -f 'customizefile.asm' -a "${1}" != "-c" ; then 
  147.   echo shar: Will not clobber existing file \"'customizefile.asm'\"
  148. else
  149. echo shar: Extracting \"'customizefile.asm'\" \(3099 characters\)
  150. sed "s/^X//" >'customizefile.asm' <<'END_OF_FILE'
  151. X
  152. X;         Written by Bruce Dawson, Copyright (c) 1989.
  153. X;
  154. X;         This  program  and  source  may  be  freely distributed as long as
  155. X; credit  to  the  original  author  is left in the source and documentation
  156. X; accompanying  the  executable.   This program may be modified for your own
  157. X; purposes.
  158. X;
  159. X;
  160. X;         This  program  is  designed to an example of how you can customize
  161. X; the  req.library  file  requester (or any of the other requesters) to suit
  162. X; your  own  personal tastes.  This program is designed to be used by people
  163. X; who  USE  programs  that  use  the  file  requester,  not people who WRITE
  164. X; programs that use the file requester.  This program patches into all calls
  165. X; to  the  file  requester  and  modifies  the  requester structure, without
  166. X; telling the calling program.
  167. X;         Note  that  this  program  opens  the  requester library but never
  168. X; closes  it.   This  is  necessary if the patch is to stay in effect.  This
  169. X; does,  however,  mean that the requester library can not be flushed out of
  170. X; memory.   In  addition,  this  program  must  stay  in memory forever.  To
  171. X; conserve  memory,  it  would  be  wise to run this program with as small a
  172. X; stack as possible.
  173. X;         This  technique of patching the requester library could be used to
  174. X; patch other functions in the requester library also.  Have fun customizing
  175. X; your system, while still using a 'standard' file requester.
  176. X
  177. X
  178. X    include    "libraries/reqbase.i"
  179. X
  180. X
  181. XSYS    MACRO
  182. X    XREF    _LVO\1
  183. X    JSR    _LVO\1(A6)
  184. X    ENDM
  185. X
  186. X    dseg
  187. X_ReqBase    DC.L    0
  188. XOldLocation    DC.L    0
  189. Xreqname        DC.B    "req.library",0
  190. X    cseg
  191. X
  192. X
  193. X
  194. X    MOVE.L    4,A6    ;Load SysBase.
  195. X    LEA    reqname,A1
  196. X    MOVEQ    #0,D0
  197. X    SYS    OpenLibrary
  198. X    MOVE.L    D0,_ReqBase
  199. X    BEQ    ErrorOpeningReqBase
  200. X
  201. X    MOVE.L    D0,A1
  202. X    LEA    FileRequesterPatchFunction,A0
  203. X    MOVE.L    A0,D0
  204. X    MOVE.L    #_LVOFileRequester,A0
  205. X    SYS    SetFunction
  206. X    MOVE.L    D0,OldLocation
  207. X
  208. X    MOVEQ    #-1,D0
  209. X    SYS    AllocSignal        ;Allocate any signal.
  210. X
  211. X    MOVEQ    #1,D1
  212. X    LSL.L    D0,D1
  213. X    MOVE.L    D1,D0
  214. X    SYS    Wait            ;Wait for a signal that will never come.
  215. X
  216. XErrorOpeningReqBase
  217. X    RTS
  218. X
  219. X
  220. X
  221. X
  222. X
  223. XFileRequesterPatchFunction
  224. X;         Here is where you adjust the file requester structure to suit your
  225. X; own  particular tastes.  Examples of things that you can safely adjust are
  226. X; the  color  fields  (dirnamescolor, devicenamescolor etc.), the numcolumns
  227. X; and  numlines  fields.  Most of the flags can safely be set from here, the
  228. X; exceptions  being  the EXTSELECT and CACHING flags, because if the calling
  229. X; program doesn't have the necessary code to deal with these (processing the
  230. X; extra  files  and purging buffers left by both flags) then some memory may
  231. X; not  get  freed  up.  These two flags can be safely cleared though, if you
  232. X; don't  want  extended select or caching.  I believe all of the other flags
  233. X; can safely be set or cleared or set.
  234. X
  235. X        ;If you like a particular width of file requester.
  236. X    MOVE.W    #20,frq_numcolumns(A0)
  237. X
  238. X        ;If you want the cache to be purged whenever the directory
  239. X        ;modification date changes and if you don't want half read
  240. X        ;directories to get cached.
  241. X    OR.L    #FRQCACHEPURGEM!FRQNOHALFCACHEM,frq_Flags(A0)
  242. X    MOVE.L    OldLocation,A1
  243. X    JMP    (A1)
  244. X
  245. X
  246. X
  247. END_OF_FILE
  248. if test 3099 -ne `wc -c <'customizefile.asm'`; then
  249.     echo shar: \"'customizefile.asm'\" unpacked with wrong size!
  250. fi
  251. # end of 'customizefile.asm'
  252. fi
  253. if test -f 'lreqglue.o.uu' -a "${1}" != "-c" ; then 
  254.   echo shar: Will not clobber existing file \"'lreqglue.o.uu'\"
  255. else
  256. echo shar: Extracting \"'lreqglue.o.uu'\" \(2034 characters\)
  257. sed "s/^X//" >'lreqglue.o.uu' <<'END_OF_FILE'
  258. Xbegin 666 lreqglue.o
  259. XM```#YP````````/H`````2````````/I````HB!O``1,[P`#``A(>/_B8``!?
  260. XMUDSO``,`!$AX_]Q@``'(2.<X,DSO``<`'"QY`````$ZN_]9,WTP<3G5(YS@RX
  261. XM3.\`!P`<+'D`````3J[_T$S?3!Q.=4CG.#),[P<``!PL>0````!.KO_*3-],\
  262. XM'$YU(&\`!$AX_ZQ@``%N("\`!$AX_Z9@``%B(&\`!$AX_T!@``%62.<X,B!O8
  263. XM`!Q,[P`/`"`L>0````!.KO^@3-],'$YU2.<X,DSO!P``'$SO``<`*"QY````B
  264. XM`$ZN_YI,WTP<3G5(YS@R(&\`'$SO``\`("QY`````$ZN_Y1,WTP<3G4@;P`$V
  265. XM2'C_CF```.Y(>/^(8```YDSO`P$`!,&(2'C_@F```-8@;P`$3.\``P`(2'C_#
  266. XM?&```,0@;P`$3.\``P`(2'C_=F```+)(YS@R3.\+```<3.\``P`H+'D`````&
  267. XM3J[_<$S?3!Q.=4CG.#),[P\``!Q,[P`/`"PL>0````!.KO]J3-],'$YU2.<X]
  268. XM,DSO"0``'$SO`!\`)"QY`````$ZN_V1,WTP<3G5(YS@R3.\'```<3.\``P`H'
  269. XM+'D`````3J[_7DS?3!Q.=2!O``1(>/]88"8@;P`$2'C_4F`<(&\`!$AX_TQ@B
  270. XM$DSO``,`!"!O``Q(>/]&8````DAY```"!B\O``0O3@`(+'D`````+P`@#M&O(
  271. XM``0@'TYU+%].=2`@3VL@(`!#86YC96P`4F5S=6UE```@;P`$0^\`"&`:(&\`;
  272. XM!$/O``A@```"2.<@.$7Z_\Y'^O_18`I(YR`XE<I'^O_,+'D`````GOP`+BA/$
  273. XM=!9"7%'*__PNB"])``0O2@`0+TL`%#]\__\`'"!/3J[_4M[\`"Y,WQP$3G5.\
  274. XM<0```^P````!`````````>@````````#[P$```)?0V5N=&5R```````!```""
  275. XM2G5M<$ET``````'F`0```E]39713:7IE````$@$```-?4V5T3&]C871I;VX`#
  276. XM```@`0``!%]296%D3&]C871I;VX````````Z`0```E]&;W)M870`````5`$`3
  277. XM``1?1FEL95)E<75E<W1E<@``````;@$```1?0V]L;W)297%U97-T97(`````T
  278. XM>@$```9?17AT96YD961#;VQO<E)E<75E<W1E<@````"&`0```E]$<F%W0F]XO
  279. XM````D@$```-?36%K94)U='1O;@````"P`0``!%]-86ME4V-R;VQL0F%R````%
  280. XM``#0`0```U]0=7)G949I;&5S`````.X!```&7T=E=$9O;G1(96EG:'1!;F17W
  281. XM:61T:```````^@$```-?36%K94=A9&=E=`````$"`0```U]-86ME4W1R:6YGK
  282. XM`````1(!```#7TUA:V50<F]P```````!)`$```-?3&EN:T=A9&=E=`````$VN
  283. XM`0``!5],:6YK4W1R:6YG1V%D9V5T```````!5@$```1?3&EN:U!R;W!'861G3
  284. XM970````!=@$```-?1V5T4W1R:6YG``````&6`0``!%]296%L5&EM95-C<F]L;
  285. XM;`````&V`0```U]497AT4F5Q=65S=````<`!```"7T=E=$QO;F<```'*`0``S
  286. XM!%]287=+97E4;T%S8VEI``````'4`0```U-T86-K0VQE86YU<````@8!```$&
  287. XM7U-I;7!L95)E<75E<W0``````B`!```$4VEM<&QE4F5Q=65S=````````D0!S
  288. XM```$7U1W;T=A9%)E<75E<W0``````BH!```$5'=O1V%D4F5Q=65S=```````R
  289. XM`C:!```"7U)E<4)A<V4````,````+````$8```!@````H@```,(```#@```!@
  290. X=2````6@```&(```!J````?8```)0`````````_)@!
  291. X``
  292. Xend
  293. Xsize 1424
  294. END_OF_FILE
  295. if test 2034 -ne `wc -c <'lreqglue.o.uu'`; then
  296.     echo shar: \"'lreqglue.o.uu'\" unpacked with wrong size!
  297. fi
  298. # end of 'lreqglue.o.uu'
  299. fi
  300. if test -f 'macros.i' -a "${1}" != "-c" ; then 
  301.   echo shar: Will not clobber existing file \"'macros.i'\"
  302. else
  303. echo shar: Extracting \"'macros.i'\" \(1927 characters\)
  304. sed "s/^X//" >'macros.i' <<'END_OF_FILE'
  305. X;------------------------------------------------------
  306. X
  307. X; This is a REALLY handly macro, that allows you to pop up messages at debugging
  308. X;points in your code. This was necessary to allow working on a multithreaded
  309. X; program, since you don't have a way of tracing the new threads.
  310. X
  311. X; If you don't define 'Debug', then this macro assembles to nothing, otherwise
  312. X;you get the requester.
  313. X;
  314. X; If you wish to display multiple paramters, simply push them on the stack
  315. X;IN REVERSE ORDER of how you wish to display them, then put the stack pointer in
  316. X;A1
  317. X
  318. X; To use this macro, you MUST link with lreqglue.o or areqglue.o.
  319. X;
  320. X
  321. X;    MOVE.L    Val2,-(SP)
  322. X;    MOVE.W    Val1,-(SP)
  323. X;    MOVE.L    String,-(SP)
  324. X;    MOVE.L    SP,A1
  325. X;    showf    <%s is a string, Val1: %d is a word, Val2: %ld is a long.> 
  326. X;    LEA    10(SP),SP
  327. X
  328. Xshowf    MACRO
  329. X    IFD    Debug
  330. X
  331. X    IFD    .A68K
  332. X    MOVEM.L    D0-A6,-(SP)
  333. X    LEA    \\@showftext,A0
  334. X    CALL    SimpleRequest
  335. X    BRA    \\@around
  336. X
  337. X\\@showftext    DC.B    "\1",0
  338. X    EVEN
  339. X\\@around
  340. X    MOVEM.L    (SP)+,D0-A6
  341. X    ENDC
  342. X
  343. X    IFND    .A68K
  344. X    MOVEM.L    D0-A6,-(SP)
  345. X    LEA    \@showftext,A0
  346. X    CALL    SimpleRequest
  347. X    BRA    \@around
  348. X
  349. X\@showftext    DC.B    "\1",0
  350. X    EVEN
  351. X\@around
  352. X    MOVEM.L    (SP)+,D0-A6
  353. X    ENDC
  354. X
  355. X    ENDC
  356. X    ENDM
  357. X
  358. X; The reason for two definitions is the difference between A68K (the PD
  359. X;assembler),which allows named local labels, and the Aztec assembler which
  360. X;doesn't.
  361. X; If you have a local label, and then this macro, and then a reference to that
  362. X;local variable, then under the Aztec version you would get an error, because
  363. X;the showf version (under Aztec) uses GLOBAL labels, which break up locals.
  364. X; That means that if you wish to use this macro while under Aztec, you can't use
  365. X;local labels in the same function.
  366. X
  367. X;-------------------------------------------------------------------------
  368. X
  369. XCALL    MACRO
  370. X    public    \1
  371. X    JSR    \1
  372. X    ENDM
  373. X
  374. XLOADLIB    MACRO
  375. X    MOVE.L    _\1Base,A6
  376. X    ENDM
  377. X
  378. XSYS    MACRO
  379. X    XREF    _LVO\1
  380. X    JSR    _LVO\1(A6)
  381. X    ENDM
  382. X
  383. XPUSH    MACRO
  384. X    MOVEM.L    \1,-(SP)
  385. X    ENDM
  386. X
  387. XPULL    MACRO
  388. X    MOVEM.L    (SP)+,\1
  389. X    ENDM
  390. X
  391. XAllRegs    REG    D0-A6
  392. X
  393. END_OF_FILE
  394. if test 1927 -ne `wc -c <'macros.i'`; then
  395.     echo shar: \"'macros.i'\" unpacked with wrong size!
  396. fi
  397. # end of 'macros.i'
  398. fi
  399. if test -f 'read.me' -a "${1}" != "-c" ; then 
  400.   echo shar: Will not clobber existing file \"'read.me'\"
  401. else
  402. echo shar: Extracting \"'read.me'\" \(5233 characters\)
  403. sed "s/^X//" >'read.me' <<'END_OF_FILE'
  404. X
  405. X
  406. X=============================================================================
  407. XOfficial release of version 1.2, October '89
  408. X
  409. X
  410. XReq.library  is Copyright (c)1989, 1990 by C.W.  Fox and Bruce Dawson.  It is
  411. Xfreely  distributable.  No charge may be made for it's distribution, except
  412. Xfor a nominal media fee.
  413. X
  414. X     Feel free to distribute and use this library with your programs, along
  415. Xwith a notice that the library is 'FreeWare'.
  416. X
  417. X=============================================================================
  418. X
  419. X    Hello! This is the introduction to the all-new "req.library"!
  420. X
  421. X    What is it?
  422. X
  423. X    Req.library  adds  user-friendliness  to  the  Amiga's  user interface.
  424. XWhile  Intuition  does supply requesters, they have certain limitations and
  425. Xare awkward to set up.  We designed ours to be quick and easy to set up, as
  426. Xwell  as  adding  features.  The text requester has PRINTF style formatting
  427. Xbuilt  in!   There is a colour requester, a very powerful file requester, a
  428. Xstring  requester  (allowing  the  user  to  enter  a line of text), and an
  429. Xinteger  requester  (allowing  the user to enter an integer number).  There
  430. Xare  also low-level support routines, such as routines to create any of the
  431. XAmiga's gadgets, as well as a real-time scroll routine.
  432. X
  433. X    The  nice  thing about the gadget creation routines, is that they allow
  434. Xyou to create gadgets from parameters, meaning that you can allocate memory
  435. Xand have your gadgets constructed there.  This allows you to use gadgets in
  436. Xcode  that  is  meant to be re-entrant.  This normally wouldn't be possible
  437. Xwith gadgets.  The size necessary for each gadget has been defined, and you
  438. Xwill find the definitions in reqbase.i and reqbase.h.
  439. X
  440. X    (Please see req.doc for a more comprehensive explanation).
  441. X
  442. X  Here is an overview of the files included in this ZOO archive:
  443. X
  444. X    areqglue.o            Gluecode for Aztec C. Link in with your programs.
  445. X    lreqglue.o            Gluecode for Lattice C. Link in with your programs.
  446. X    reqglue.asm           Sourcecode for the gluecode.
  447. X    customizefile.asm     How to customize the file requester.
  448. X    customizefile         The executable of the file requester customizer.
  449. X    reqbase.h             The C include file. Put it in include/libraries
  450. X    reqbase.i             The asm include file. Put it in include/libraries
  451. X    showoffreq.c          The C source code for the req demo program.
  452. X    showoffreq            The req demo executable.
  453. X    req.library           The actual library. This goes in libs:
  454. X    reqproto.h            The prototype file for Lattice C
  455. X    req.doc               The instructions and calling conventions.
  456. X    read.me               This file
  457. X    macros.i              Some handy macros.
  458. X
  459. X-----------------------------------------------------------------------------
  460. X    Included is a demo program called Showoffreq, which opens a screen with
  461. Xtext  gadgets in it, one per requester.  If you wish to experiment with the
  462. Xrequesters, this might be a good place to start.
  463. X
  464. X
  465. XTo compile showoffreq.c under Lattice, use:
  466. X
  467. X               lc -Lcd+lib:lreqglue.o showoffreq
  468. X
  469. X
  470. X
  471. X
  472. XTo compile showoffreq.c under Aztec, use:
  473. X
  474. X               cc -o o/showoffreq.o showoffreq.c
  475. X
  476. X               ln -w +Q -o showoffreq o/showoffreq.o lib:areqglue.o -lc
  477. X
  478. X-----------------------------------------------------------------------------
  479. X
  480. X                               For Assembly
  481. X
  482. X-----------------------------------------------------------------------------
  483. X
  484. X    To  use  req.library  from  assembly  language  is quite easy.  So far,
  485. Xnothing's been said about it, so here is some info.
  486. X
  487. X    First  of  all,  the library is EXACTLY like system libraries; you open
  488. Xit, call functions, and then close it.  We've included some macros that may
  489. Xmake working with it a bit easier.  All you have to include to actually use
  490. Xthe req.library is reqbase.i.  This contains all the function offsets.  You
  491. Xmay  wish  to call the functions directly, or use a bit of gluecode to make
  492. Xthings even easier.  If you wish to do it all yourself, then all you've got
  493. Xto  do  is  include  reqbase.i.   If you wish to use some pre-made function
  494. Xsetup, then you have to link with the appropriate reqglue.o (lreqglue.o for
  495. XLattice, and areqglue.o for Aztec).
  496. X
  497. X
  498. X
  499. X
  500. X
  501. X\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  502. X
  503. X  To link with lreqglue.o (for Lattice), an example linkfile might look like
  504. Xthis:
  505. X
  506. X---cut here---cut here---cut here---cut here---cut here---cut here---cut here
  507. X
  508. XFROM
  509. Xlib:startup.o
  510. Xobj/file1.o
  511. Xobj/file2.o
  512. Xobj/data.o
  513. Xobj/menus.o
  514. X
  515. XLIB
  516. Xlib:amiga.lib (or lib:lvo.lib if you have it)
  517. Xlib:lreqglue.o
  518. X
  519. XTO
  520. Xfile
  521. X
  522. Xnodebug smallcode smalldata
  523. X
  524. XBATCH
  525. X
  526. X---cut here---cut here---cut here---cut here---cut here---cut here---cut here
  527. X
  528. Xand to use this linkfile, just say:
  529. X
  530. X    blink with <linkfile>
  531. X
  532. X
  533. X
  534. X
  535. X\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  536. X
  537. XTo link with areqglue.o (for Aztec), and example linkfile might look like this:
  538. X
  539. X
  540. X
  541. X---cut here---cut here---cut here---cut here---cut here---cut here---cut here
  542. X
  543. Xln -w +Q -o file1 o/file1.o lib:areqglue.o -lc
  544. X
  545. X---cut here---cut here---cut here---cut here---cut here---cut here---cut here
  546. X
  547. Xand to use this linkfile, just say:
  548. X
  549. X    ln -f <linkfile>
  550. X
  551. X
  552. END_OF_FILE
  553. if test 5233 -ne `wc -c <'read.me'`; then
  554.     echo shar: \"'read.me'\" unpacked with wrong size!
  555. fi
  556. # end of 'read.me'
  557. fi
  558. if test -f 'read.me.uu' -a "${1}" != "-c" ; then 
  559.   echo shar: Will not clobber existing file \"'read.me.uu'\"
  560. else
  561. echo shar: Extracting \"'read.me.uu'\" \(3646 characters\)
  562. sed "s/^X//" >'read.me.uu' <<'END_OF_FILE'
  563. Xbegin 666 read.me.info
  564. XMXQ```0``````BP`3`&(`'0`&``,``0`DRN``),KX````````````````````/
  565. XM````!```)+S8`````````(<````(``````````````````````!B`!T``P`!.
  566. XM?<#_`````````````````````````````````$5555550```````````15_5.
  567. XM555```````````!%5M55544``````````$569]?51P``````````159G9V5'3
  568. XM``````````!%5F9F14<``````````$56QF9U1P``````````15_'Q\5'````T
  569. XM``````!%5!4%!4<``````````$5555551P``````````1?UU=55'````````G
  570. XM``!%S%%Q54<``````````$7$=7%]1P``````````1?5Q<<U'``````````!%7
  571. XMP7%Q_$<``````````$7%<7'`1P``````````1>5Y>7U'``````````!%!4%!%
  572. XM04<``````````$5555551P``````````1555555'``````````!%555554<`H
  573. XM`````````$5555551P``````````15550`%'``````````!%555554<`````W
  574. XM````````````!P``````````+_______```````````55555554`````````O
  575. XM```````````````````!_______X``````````'_______@``````````?_P8
  576. XM?____\`````````!__D_____P`````````'_^9P\/_O``````````?_YF9F?&
  577. XM^\`````````!__F9F?_[P`````````'_^3F9G_O``````````?_P?#P_^\``G
  578. XM```````!_______[P`````````'_______O``````````?X#SX__^\``````(
  579. XM```!_S/_S__[P`````````'_/X_/A_O``````````?\/S\\S^\`````````!V
  580. XM_S_/SP/[P`````````'_/\_//_O``````````?X?AX>'^\`````````!____=
  581. XM___[P`````````'_______O``````````?______^\`````````!_______[>
  582. XMP`````````'_______O``````````?______^\`````````!_______[P```E
  583. XM``````'_______O``````````?@``````\``````````________P```````M
  584. XM``!________`````````````````````````````````````````````````Z
  585. XM`````````````````````````````````````````````````````````````
  586. XM`````````````````````````````````````````````````````````````
  587. XM`````````````````````````````````````````````````````````````
  588. XM`````````````````````````````````````````````````````````````
  589. XM`````````````````````````````````````````````````````````````
  590. XM`````````````````````````````````````````````````````````````
  591. XM`````````````````````````````````````````````````````````````
  592. XM`````````````````````````````````````````````````````````````
  593. XM`````````````````````&(`'0`#``&"B/\`````````````````````````,
  594. XM*JJJJJJH!5555555```W______Z_______L``#?______K______^P``-___K
  595. XM___^O______[```WZJJJJN`#ZJJJJKL``#?______K______^P``-______^O
  596. XMOZJJJJJ[```W______Z_______L``#?55555?K^JJJJJNP``-______^O___B
  597. XM___[```W555557Z_JJJJJKL``#?______K______^P``-U55555^OZJJJJJ[V
  598. XM```W_____^`#______L``#=55555?K^JJJJJNP``-______^O______[```W6
  599. XMU55557Z_JJJJJKL``#?______K______^P``-U55555^OZJJJJJ[```W____Z
  600. XM__Z_______L``#=55555?K^JJJJJNP``-______^O______[```W_____^`#;
  601. XM______L``#?__U___K___K__^P``-______^O______[```P``````"`````4
  602. XM``,``"JJJJJJJ`55555550````````````````````#_______X?_______`^
  603. XM`/_______________\``^``````!P``````'P`#X``````'```````?``/@`L
  604. XM`````<``````!\``^``````?_!55555'P`#X``````'```````?``/@`````N
  605. XM`<!555551\``^``````!P``````'P`#X*JJJJH'`555554?``/@``````<``1
  606. XM````!\``^*JJJJJ!P%55555'P`#X``````'```````?``/BJJJJJ@<!55555X
  607. XM1\``^``````?_``````'P`#XJJJJJH'`555554?``/@``````<``````!\``=
  608. XM^"JJJJJ!P%55555'P`#X``````'```````?``/BJJJJJ@<!555551\``^```P
  609. XM```!P``````'P`#XJJJJJH'`555554?``/@``````<``````!\``^``````?;
  610. XM_``````'P`#X``"@``'```%```?``/@``````<``````!\``____________;
  611. XM____P`#________________``/_______A_______\``````````````````$
  612. XM`````````````````````````````````````````````````````````````
  613. XM`````````````````````````````````````````````````````````````
  614. XM`````````````````````````````````````````````````````````````
  615. XM`````````````````````````````````````````````````````````````
  616. XM`````````````````````````````````````````````````````````````
  617. XM`````````````````````````````````````````````````````````````
  618. XM`````````````````````````````````````````````````````````````
  619. XM`````````````````````````````````````````````````````````````
  620. XM`````````````````````````````````````````````````!`Z571I;&ET%
  621. X):65S+TUO<F4`#
  622. X``
  623. Xend
  624. Xsize 2574
  625. END_OF_FILE
  626. if test 3646 -ne `wc -c <'read.me.uu'`; then
  627.     echo shar: \"'read.me.uu'\" unpacked with wrong size!
  628. fi
  629. # end of 'read.me.uu'
  630. fi
  631. if test -f 'req.doc.uu' -a "${1}" != "-c" ; then 
  632.   echo shar: Will not clobber existing file \"'req.doc.uu'\"
  633. else
  634. echo shar: Extracting \"'req.doc.uu'\" \(3646 characters\)
  635. sed "s/^X//" >'req.doc.uu' <<'END_OF_FILE'
  636. Xbegin 666 req.doc.info
  637. XMXQ```0``````&P`3`&(`'0`&``,``0`DB6@`)+4(````````````````````A
  638. XM````!```))=0`````````!<````(``````````````````````!B`!T``P`!Q
  639. XM=##_`````````````````````````````````$5555550```````````15_5U
  640. XM555```````````!%5M55544``````````$569]?51P``````````159G9V5'3
  641. XM``````````!%5F9F14<``````````$56QF9U1P``````````15_'Q\5'````T
  642. XM``````!%5!4%!4<``````````$5555551P``````````1?UU=55'````````G
  643. XM``!%S%%Q54<``````````$7$=7%]1P``````````1?5Q<<U'``````````!%7
  644. XMP7%Q_$<``````````$7%<7'`1P``````````1>5Y>7U'``````````!%!4%!%
  645. XM04<``````````$5555551P``````````1555555'``````````!%555554<`H
  646. XM`````````$5555551P``````````15550`%'``````````!%555554<`````W
  647. XM````````````!P``````````+_______```````````55555554`````````O
  648. XM```````````````````!_______X``````````'_______@``````````?_P8
  649. XM?____\`````````!__D_____P`````````'_^9P\/_O``````````?_YF9F?&
  650. XM^\`````````!__F9F?_[P`````````'_^3F9G_O``````````?_P?#P_^\``G
  651. XM```````!_______[P`````````'_______O``````````?X#SX__^\``````(
  652. XM```!_S/_S__[P`````````'_/X_/A_O``````````?\/S\\S^\`````````!V
  653. XM_S_/SP/[P`````````'_/\_//_O``````````?X?AX>'^\`````````!____=
  654. XM___[P`````````'_______O``````````?______^\`````````!_______[>
  655. XMP`````````'_______O``````````?______^\`````````!_______[P```E
  656. XM``````'_______O``````````?@``````\``````````________P```````M
  657. XM``!________`````````````````````````````````````````````````Z
  658. XM`````````````````````````````````````````````````````````````
  659. XM`````````````````````````````````````````````````````````````
  660. XM`````````````````````````````````````````````````````````````
  661. XM`````````````````````````````````````````````````````````````
  662. XM`````````````````````````````````````````````````````````````
  663. XM`````````````````````````````````````````````````````````````
  664. XM`````````````````````````````````````````````````````````````
  665. XM`````````````````````````````````````````````````````````````
  666. XM`````````````````````&(`'0`#``%X^/\`````````````````````````R
  667. XM*JJJJJJH!5555555```W______Z_______L``#?______K______^P``-___K
  668. XM___^O______[```WZJJJJN`#ZJJJJKL``#?______K______^P``-______^O
  669. XMOZJJJJJ[```W______Z_______L``#?55555?K^JJJJJNP``-______^O___B
  670. XM___[```W555557Z_JJJJJKL``#?______K______^P``-U55555^OZJJJJJ[V
  671. XM```W_____^`#______L``#=55555?K^JJJJJNP``-______^O______[```W6
  672. XMU55557Z_JJJJJKL``#?______K______^P``-U55555^OZJJJJJ[```W____Z
  673. XM__Z_______L``#=55555?K^JJJJJNP``-______^O______[```W_____^`#;
  674. XM______L``#?__U___K___K__^P``-______^O______[```P``````"`````4
  675. XM``,``"JJJJJJJ`55555550````````````````````#_______X?_______`^
  676. XM`/_______________\``^``````!P``````'P`#X``````'```````?``/@`L
  677. XM`````<``````!\``^``````?_!55555'P`#X``````'```````?``/@`````N
  678. XM`<!555551\``^``````!P``````'P`#X*JJJJH'`555554?``/@``````<``1
  679. XM````!\``^*JJJJJ!P%55555'P`#X``````'```````?``/BJJJJJ@<!55555X
  680. XM1\``^``````?_``````'P`#XJJJJJH'`555554?``/@``````<``````!\``=
  681. XM^"JJJJJ!P%55555'P`#X``````'```````?``/BJJJJJ@<!555551\``^```P
  682. XM```!P``````'P`#XJJJJJH'`555554?``/@``````<``````!\``^``````?;
  683. XM_``````'P`#X``"@``'```%```?``/@``````<``````!\``____________;
  684. XM____P`#________________``/_______A_______\``````````````````$
  685. XM`````````````````````````````````````````````````````````````
  686. XM`````````````````````````````````````````````````````````````
  687. XM`````````````````````````````````````````````````````````````
  688. XM`````````````````````````````````````````````````````````````
  689. XM`````````````````````````````````````````````````````````````
  690. XM`````````````````````````````````````````````````````````````
  691. XM`````````````````````````````````````````````````````````````
  692. XM`````````````````````````````````````````````````````````````
  693. XM`````````````````````````````````````````````````!`Z571I;&ET%
  694. X):65S+TUO<F4`#
  695. X``
  696. Xend
  697. Xsize 2574
  698. END_OF_FILE
  699. if test 3646 -ne `wc -c <'req.doc.uu'`; then
  700.     echo shar: \"'req.doc.uu'\" unpacked with wrong size!
  701. fi
  702. # end of 'req.doc.uu'
  703. fi
  704. if test -f 'req.h' -a "${1}" != "-c" ; then 
  705.   echo shar: Will not clobber existing file \"'req.h'\"
  706. else
  707. echo shar: Extracting \"'req.h'\" \(646 characters\)
  708. sed "s/^X//" >'req.h' <<'END_OF_FILE'
  709. X/* Prototypes for the req.library for use with Lattice. */
  710. X
  711. X#ifndef __NOPROTO
  712. X#ifndef __PROTO
  713. X#define __PROTO(a) a
  714. X#endif
  715. X#else
  716. X#ifndef __PROTO
  717. X#define __PROTO(a) ()
  718. X#endif
  719. X#endif
  720. X
  721. X
  722. Xvoid __stdargs  SimpleRequest __PROTO((char *,...));
  723. Xint  __stdargs  TwoGadRequest __PROTO((char *,...));
  724. Xint  __stdargs  FileRequester __PROTO((struct FileRequester *));
  725. Xvoid __stdargs  Center __PROTO((struct NewWindow *,int,int));
  726. Xvoid __stdargs  PurgeFiles __PROTO((struct FileRequester *));
  727. Xvoid __stdargs  ColorRequester __PROTO((long));
  728. Xint  __stdargs    TextRequest __PROTO((struct TRStructure *));
  729. Xchar __stdargs    RawKeyToAscii __PROTO((short,short,char *));
  730. X
  731. END_OF_FILE
  732. if test 646 -ne `wc -c <'req.h'`; then
  733.     echo shar: \"'req.h'\" unpacked with wrong size!
  734. fi
  735. # end of 'req.h'
  736. fi
  737. if test -f 'reqbase.h' -a "${1}" != "-c" ; then 
  738.   echo shar: Will not clobber existing file \"'reqbase.h'\"
  739. else
  740. echo shar: Extracting \"'reqbase.h'\" \(13008 characters\)
  741. sed "s/^X//" >'reqbase.h' <<'END_OF_FILE'
  742. X
  743. X/* reqlibrary.h (c) 1988/1989 reserved by Colin Fox and Bruce Dawson */
  744. X
  745. X#ifndef REQLIBRARY_H
  746. X#define REQLIBRARY_H
  747. X
  748. X#define    REQVERSION    1
  749. X
  750. X
  751. X#define    NUMPAIRS    10
  752. X
  753. Xstruct GadgetBlock
  754. X    {
  755. X    struct Gadget        Gadget;
  756. X    struct Border        Border;
  757. X    WORD                Pairs[NUMPAIRS];
  758. X    struct IntuiText    Text;
  759. X    };
  760. X
  761. Xstruct StringBlock
  762. X    {
  763. X    struct Gadget        Gadget;
  764. X    struct StringInfo    Info;
  765. X    struct Border        Border;
  766. X    WORD                Pairs[NUMPAIRS];
  767. X    };
  768. X
  769. Xstruct PropBlock
  770. X    {
  771. X    struct Gadget        Gadget;
  772. X    struct PropInfo        Info;
  773. X    struct Image        Image;
  774. X    };
  775. X
  776. Xstruct ScrollBlock
  777. X    {
  778. X    struct Gadget        ArrowUpLt;
  779. X    struct Image        ImageUpLt;
  780. X    struct Gadget        ArrowDnRt;
  781. X    struct Image        ImageDnRt;
  782. X    struct PropBlock    Prop;
  783. X    };
  784. X
  785. Xstruct TwoImageGadget
  786. X    {
  787. X    struct Gadget        Gadget;
  788. X    struct Image        Image1;
  789. X    struct Image        Image2;
  790. X    };
  791. X
  792. X#define    ATTITUDEB    16
  793. X
  794. X#define    HORIZSLIDER        (0L<<ATTITUDEB)    /*;which way the slider stands*/
  795. X#define    VERTSLIDER        (1L<<ATTITUDEB)    /*;This is so that it bypasses all gadget flags.*/
  796. X
  797. X
  798. X
  799. X/*;         This structure is use with the TextRequester function.*/
  800. X
  801. Xstruct TRStructure
  802. X    {
  803. X    char    *Text;            /* ;This is the message text, including printf() style formatting if desired.*/
  804. X    char    *Controls;        /* ;This is the address of the parameter list, if printf() style formatting is used.*/
  805. X    struct Window    *Window;/* ;This is an optional (zero if not used) pointer to a window on the screen you*/
  806. X                            /* ;would like the requester to show up on.*/
  807. X    char    *MiddleText;    /* ;If non-zero, this is the text for the gadget in the lower middle (returns 2).*/
  808. X    char    *PositiveText;    /* ;If non-zero, this is the text for the gadget in the lower left hand corner (returns 1).*/
  809. X    char    *NegativeText;    /* ;If non-zero, this is the text for the gadget in the lower right (returns 0).*/
  810. X    char    *Title;            /* ;This is the title for the window.*/
  811. X    WORD    KeyMask;        /* ;This is the qualifier mask for the keyboard shortcuts.*/
  812. X                            /* ;Use $FFFF to allow any qualifiers (or none).*/
  813. X                            /* ;Zero means that no keyboard shortcuts are allowed.*/
  814. X    WORD    textcolor;        /* ;Color of the text.  Uses color 1 if no color specified. */
  815. X    WORD    detailcolor;    /* ;Detail and block color, as in a NewWindow structure.  If */
  816. X    WORD    blockcolor;        /* ;both are left zero, block pen will be set to 1. */
  817. X    WORD    versionnumber;    /* ;Make SURE this is set to zero. */
  818. X    LONG    rfu1;            /* ;Make SURE you leave these two zeroed also. */
  819. X    LONG    rfu2;            /* ;Make SURE you leave these two zeroed also. */
  820. X    };
  821. X
  822. X/* NOTE:
  823. X
  824. X    The  control  values  mentioned above are used if you choose to insert
  825. Xprintf  style directives in your strings and should contain the address of
  826. Xa list of control parameters, usually on the stack.
  827. X    */
  828. X
  829. X
  830. X
  831. X/*;         Remember,   if  you  don't  want  to  go  through  the  hassle  of */
  832. X/*; initializing a ExtendedColorRequester structure, you can always just call */
  833. X/*; ColorRequester  (as opposed to ExtendedColorRequester).  ColorRequester */
  834. X/*; just  takes  a  single  parameter, in D0, the color that should start out */
  835. X/*; being highlit.  It returns a single value, the color that was selected at */
  836. X/*; the end.
  837. X
  838. X/*;         This structure is for use with the ExtendedColorRequester (_not_, */
  839. X/*; the ColorRequester) function. */
  840. X
  841. Xstruct ExtendedColorRequester
  842. X    {
  843. X    LONG    defcolor;        /*;The color that is initially highlit. */
  844. X    APTR    window;            /*;The window the 'requester' opens up in. */
  845. X    LONG    rfu1;            /*;Who knows what these will be used for, */
  846. X    LONG    rfu2;            /*;but I'm sure we'll think of something. */
  847. X    LONG    rfu3;            /*;Until then, just keep these zeroed. */
  848. X    LONG    rfu4;            /*;Okay? */
  849. X    LONG    rfu5;
  850. X    };
  851. X
  852. X
  853. X
  854. X/*;         This structure is for use with the GetLong function.*/
  855. X
  856. X#define    GLNODEFAULTB    0    /*;Set this bit in the flags if you don't want a default*/
  857. X                            /*;value to show up in the get long string gadget.  For*/
  858. X                            /*;some things this is much better than having a zero*/
  859. X                            /*;show up.*/
  860. X
  861. X#define    GLNODEFAULTM    (1<<GLNODEFAULTB)
  862. X
  863. Xstruct GetLongStruct
  864. X    {
  865. X    char    *titlebar;
  866. X    LONG    defaultval;
  867. X    LONG    minlimit;
  868. X    LONG    maxlimit;
  869. X    LONG    result;
  870. X    struct Window    *window;
  871. X    WORD    versionnumber;    /* ;Make SURE this is set to zero. */
  872. X    LONG    flags;            /* Some, uh flags.  See above for bit definitions. */
  873. X    LONG    rfu2;            /* ;Make SURE you leave these two zeroed also. */
  874. X    };
  875. X
  876. X
  877. X
  878. X#ifndef    DSIZE
  879. X#define    DSIZE    130
  880. X#define    FCHARS    30
  881. X#endif
  882. X#define    WILDLENGTH    30
  883. X
  884. X#define    FRQSHOWINFOB    0    /*;Set this in Flags if you want .info files to show.  They default to hidden.*/
  885. X#define    FRQEXTSELECTB    1    /*;Set this in Flags if you want extended select.  Default is not.*/
  886. X#define    FRQCACHINGB        2    /*;Set this in Flags if you want directory caching.  Default is not.*/
  887. X#define    FRQGETFONTSB    3    /*;Set this in Flags if you want a font requester rather than a file requester.*/
  888. X#define    FRQINFOGADGETB    4    /*;Set this in Flags if you want a hide-info files gadget.*/
  889. X#define    FRQHIDEWILDSB    5    /*;Set this in Flags if you DON'T want 'show' and 'hide' string gadgets.*/
  890. X#define    FRQABSOLUTEXYB    6    /*;Use absolute x,y positions rather than centering on mouse.*/
  891. X#define    FRQCACHEPURGEB    7    /*;Purge the cache whenever the directory date stamp changes if this is set.*/
  892. X#define    FRQNOHALFCACHEB    8    /*;Don't cache a directory unless it is completely read in when this is set.*/
  893. X#define    FRQNOSORTB        9    /*;Set this in Flags if you DON'T want sorted directories.*/
  894. X#define    FRQNODRAGB        10    /*;Set this in Flags if you DON'T want a drag bar and depth gadgets.*/
  895. X#define    FRQSAVINGB        11    /*;Set this bit if you are selecting a file to save to.*/
  896. X#define    FRQLOADINGB        12    /*;Set this bit if you are selecting a file(s) to load from.*/
  897. X                            /*;These two bits (save and load) aren't currently used for*/
  898. X                            /*;anything, but they may be in the future, so you should*/
  899. X                            /*;remember to set them.  Also, these bits make it easier if*/
  900. X                            /*;somebody wants to customize the file requester for their*/
  901. X                            /*;machine.  They can make it behave differently for loading*/
  902. X                            /*;vs saving.*/
  903. X
  904. X#define    FRQSHOWINFOM    (1<<FRQSHOWINFOB)
  905. X#define    FRQEXTSELECTM    (1<<FRQEXTSELECTB)
  906. X#define    FRQCACHINGM        (1<<FRQCACHINGB)
  907. X#define    FRQGETFONTSM    (1<<FRQGETFONTSB)
  908. X#define    FRQINFOGADGETM    (1<<FRQINFOGADGETB)
  909. X#define    FRQHIDEWILDSM    (1<<FRQHIDEWILDSB)
  910. X#define    FRQABSOLUTEXYM    (1<<FRQABSOLUTEXYB)
  911. X#define    FRQCACHEPURGEM    (1<<FRQCACHEPURGEB)
  912. X#define    FRQNOHALFCACHEM    (1<<FRQNOHALFCACHEB)
  913. X#define    FRQNOSORTM        (1<<FRQNOSORTB)
  914. X#define    FRQNODRAGM        (1<<FRQNODRAGB)
  915. X#define    FRQSAVINGM        (1<<FRQSAVINGB)
  916. X#define    FRQLOADINGM        (1<<FRQLOADINGB)
  917. X
  918. Xstruct ESStructure
  919. X    {
  920. X    struct ESStructure    *NextFile;
  921. X    WORD    NameLength;            /* Length of thefilename field, not including the terminating zero. */
  922. X    WORD    Pad;
  923. X    APTR    Node;                /* For internal use only. */
  924. X    char    thefilename[1];        /* This is a variable size field. */
  925. X    };
  926. X
  927. Xstruct FileRequester
  928. X    {
  929. X    UWORD    VersionNumber;                /* Make sure this is zeroed for now. */
  930. X
  931. X    char    *Title;                        /* Hailing text */
  932. X    char    *Dir;                        /* Directory array (DSIZE+1) */
  933. X    char    *File;                        /* Filename array (FCHARS+1) */
  934. X
  935. X    char    *PathName;                    /* Complete path name array (DSIZE+FCHARS+2) */
  936. X
  937. X    struct Window    *Window;            /* Window requesting or NULL */
  938. X
  939. X
  940. X    UWORD    MaxExtendedSelect;            /* Zero implies a maximum of 65535, as long as FRQEXTSELECT is set.*/
  941. X    UWORD    numlines;                    /* Number of lines in file window. */
  942. X    UWORD    numcolumns;                    /* Number of columns in file window. */
  943. X    UWORD    devcolumns;
  944. X    ULONG    Flags;                        /* Various - umm - flags.  See above for more info. */
  945. X    UWORD    dirnamescolor;            /* These five colors will all default */
  946. X    UWORD    filenamescolor;            /* to color one if you don't specify */
  947. X    UWORD    devicenamescolor;        /* a color (ie; if you specify color zero). */
  948. X    UWORD    fontnamescolor;            /* If you want color zero to be used, specify */
  949. X    UWORD    fontsizescolor;            /* color 32, or some other too large number */
  950. X                                    /* which mods down to zero. */
  951. X
  952. X    UWORD    detailcolor;            /* If both of these colors are specified as */
  953. X    UWORD    blockcolor;                /* zero then the block pen will be set to one. */
  954. X
  955. X    UWORD    gadgettextcolor;        /* The color for the text of the five boolean gadgets.  Defaults to 1. */
  956. X    UWORD    textmessagecolor;        /* The color for the message at the screen top.  Defaults to 1. */
  957. X    UWORD    stringnamecolor;        /* The color for the words Drawer, File, Hide and Show.  Defaults to 3. */
  958. X    UWORD    stringgadgetcolor;        /* The color for the borders of the string gadgets.  Defaults to 3. */
  959. X                                    /* Unfortunately it is not possible to specify */
  960. X                                    /* the color of the actual text in an Intuition */
  961. X                                    /* string gadget. */
  962. X    UWORD    boxbordercolor;            /* The color for the boxes around the file and directory areas.  Defaults to 3. */
  963. X    UWORD    gadgetboxcolor;            /* The color for the boxes around the five boolean gadgets.  Defaults to 3. */
  964. X
  965. X    UWORD    FRU_Stuff[18];                /* This area, which is reserved for */
  966. X                                        /* future use, should all be zero. */
  967. X
  968. X    struct DateStamp    DirDateStamp;    /* A copy of the cached directories date stamp. */
  969. X                                        /* There should never be any need to change this. */
  970. X
  971. X    UWORD    WindowLeftEdge;            /* These two fields are only used when the */
  972. X    UWORD    WindowTopEdge;            /* FRQABSOLUTEXY flag is set.  They specify */
  973. X                                    /* the location of the upper left hand */
  974. X                                    /* corner of the window. */
  975. X
  976. X    UWORD    FontYSize;                /* These fields are used to return the selected */
  977. X    UWORD    FontStyle;                /* font size and style, only applicable when the */
  978. X                                    /* font bit is set. */
  979. X
  980. X    /*If you set the extended select bit and the user extended selects, the list of filenames will start from here.*/
  981. X    struct ESStructure *ExtendedSelect;
  982. X    char    Hide[WILDLENGTH+2];        /* The wildcards text. */
  983. X    char    Show[WILDLENGTH+2];        /* More wildcards text. */
  984. X    WORD    FileBufferPos;            /* Various fields taken from the various */
  985. X    WORD    FileDispPos;            /* string gadgets so that the cursor */
  986. X    WORD    DirBufferPos;            /* can be returned to the same position */
  987. X    WORD    DirDispPos;                /* on subsequent calls. */
  988. X    WORD    HideBufferPos;
  989. X    WORD    HideDispPos;
  990. X    WORD    ShowBufferPos;
  991. X    WORD    ShowDispPos;
  992. X
  993. X/**;      The  following  fields are PRIVATE!  Don't go messing with them or
  994. X; wierd  things may/will happen.  If this isn't enough of a warning, go read
  995. X; the one in intuition.h, that should scare you off.**/
  996. X
  997. X    APTR    Memory;                        /* Memory allocate for dir entries. */
  998. X    APTR    Memory2;                    /* More memory, used for hidden files. */
  999. X    APTR    Lock;
  1000. X    char    PrivateDirBuffer[DSIZE+2];    /* Used for keeping a record of which */
  1001. X                                        /* directory we have file names for. */
  1002. X    struct FileInfoBlock    *FileInfoBlock;
  1003. X    WORD    NumEntries;
  1004. X    WORD    NumHiddenEntries;
  1005. X    WORD    filestartnumber;
  1006. X    WORD    devicestartnumber;
  1007. X    };
  1008. X
  1009. X
  1010. X
  1011. X/*        This is used with the RealTimeScroll function. */
  1012. X
  1013. Xstruct ScrollStruct
  1014. X     {
  1015. X    ULONG    TopEntryNumber;            /*;This is the ordinal number of the first*/
  1016. X                                    /*;displayed entry.*/
  1017. X    ULONG    NumEntries;                /*;This is the total number of entries in*/
  1018. X                                    /*;the list.*/
  1019. X    UWORD    LineSpacing;            /*;This is how many pixels high each entry is.*/
  1020. X    ULONG    NumLines;                /*;This is how many entries can be displayed simultaneously.*/
  1021. X    struct Gadget    *PropGadget;    /*;This is a pointer to the prop gadget being monitored.*/
  1022. X
  1023. X    void    (*RedrawAll)();            /*;This routine is used to redraw all of the*/
  1024. X                                    /*;entries when the user moves far enough*/
  1025. X                                    /*;that scrolling will take too long.*/
  1026. X
  1027. X    void    (*ReadMore)();            /*;An optional routine that is called when*/
  1028. X                                    /*;the scroll routine is waiting for movement.*/
  1029. X                                    /*;This allows reading of new data while real*/
  1030. X                                    /*;time scrolling.*/
  1031. X    void    (*ScrollAndDraw)();        /*;This routine is called when the data needs*/
  1032. X                                    /*;to be scrolled and updated.  This routine is*/
  1033. X                                    /*;passed four long parameters (on the stack and*/
  1034. X                                    /*;in D0-D3) which are, respectively:*/
  1035. X                                    /*;D0 - entry number of first line to be drawn.*/
  1036. X                                    /*;D1 - pixel offset to draw first line at.*/
  1037. X                                    /*;D2 - amount to scroll before doing any drawing.*/
  1038. X                                    /*;D3 - number of lines of data to draw.*/
  1039. X    WORD    versionnumber;            /*;Make SURE this is set to zero. */
  1040. X    LONG    rfu1;                    /*;Make SURE you leave these two zeroed also. */
  1041. X    LONG    rfu2;                    /*;Make SURE you leave these two zeroed also. */
  1042. X    };
  1043. X
  1044. X
  1045. X
  1046. X
  1047. X
  1048. Xstruct chipstuff
  1049. X    {
  1050. X    char    ArrowUp[20];        /* 16 pixels wide, 10 pixels high. */
  1051. X    char    ArrowDown[20];        /* 16 pixels wide, 10 pixels high. */
  1052. X    char    ArrowLeft[18];        /* 16 pixels wide, 9 pixels high. */
  1053. X    char    ArrowRight[18];        /* 16 pixels wide, 9 pixels high. */
  1054. X    char    Letter_R[20];        /* 16 pixels wide, 10 pixels high. */
  1055. X    char    Letter_G[20];        /* 16 pixels wide, 10 pixels high. */
  1056. X    char    Letter_B[20];        /* 16 pixels wide, 10 pixels high. */
  1057. X    char    Letter_H[20];        /* 16 pixels wide, 10 pixels high. */
  1058. X    char    Letter_S[20];        /* 16 pixels wide, 10 pixels high. */
  1059. X    char    Letter_V[20];        /* 16 pixels wide, 10 pixels high. */
  1060. X    };
  1061. X
  1062. Xstruct ReqLib
  1063. X    {
  1064. X    struct Library RLib;
  1065. X    struct AbsExecBase        *SysLib;
  1066. X    struct DosBase            *DosLib;
  1067. X    struct IntuitionBase    *IntuiLib;
  1068. X    struct GfxBase            *GfxLib;
  1069. X    APTR                    SegList;
  1070. X    struct chipstuff        *Images;
  1071. X    BYTE                    Flags;
  1072. X    BYTE                    Pad;
  1073. X    char                    *ConsoleDev;    /* Not really a char*, but it should work */
  1074. X    struct    IOStdReq        *ConsoleHandle;
  1075. X    };
  1076. X
  1077. X
  1078. X#endif
  1079. END_OF_FILE
  1080. if test 13008 -ne `wc -c <'reqbase.h'`; then
  1081.     echo shar: \"'reqbase.h'\" unpacked with wrong size!
  1082. fi
  1083. # end of 'reqbase.h'
  1084. fi
  1085. if test -f 'reqglue.asm' -a "${1}" != "-c" ; then 
  1086.   echo shar: Will not clobber existing file \"'reqglue.asm'\"
  1087. else
  1088. echo shar: Extracting \"'reqglue.asm'\" \(5221 characters\)
  1089. sed "s/^X//" >'reqglue.asm' <<'END_OF_FILE'
  1090. X
  1091. X    include "libraries/reqbase.i"
  1092. X
  1093. X    xref    _ReqBase
  1094. X
  1095. X
  1096. X
  1097. XGLUE    MACRO
  1098. X    XDEF    _\1
  1099. X_\1
  1100. X    ENDM
  1101. X
  1102. XNEWSYS    MACRO
  1103. X    PEA    _LVO\1            ;4
  1104. X    BRA    JumpIt            ;2 to 4.
  1105. X    ENDM
  1106. X
  1107. XSTACKOFFSET    EQU    4
  1108. X
  1109. X
  1110. X
  1111. XGLUE2    MACRO
  1112. X    XDEF    _\1
  1113. X_\1
  1114. X    MOVEM.L    D2-D4/A2-A3/A6,-(SP)
  1115. X    ENDM
  1116. X
  1117. XNEWSYS2    MACRO
  1118. X    MOVE.L    _ReqBase,A6
  1119. X    JSR    _LVO\1(A6)
  1120. X    MOVEM.L    (SP)+,D2-D4/A2-A3/A6
  1121. X    RTS
  1122. X    ENDM
  1123. X
  1124. XSTACKOFFSET2    EQU    28
  1125. X
  1126. X
  1127. X
  1128. X    GLUE    Center
  1129. X    MOVE.L    STACKOFFSET(SP),A0
  1130. X    MOVEM.L    STACKOFFSET+4(SP),D0-D1
  1131. X    NEWSYS    Center
  1132. X
  1133. X    GLUE    SetSize
  1134. X    MOVEM.L    STACKOFFSET(SP),D0-D1
  1135. X    NEWSYS    SetSize
  1136. X
  1137. X    GLUE2    SetLocation
  1138. X    MOVEM.L    STACKOFFSET2(SP),D0-D2
  1139. X    NEWSYS2    SetLocation
  1140. X
  1141. X    GLUE2    ReadLocation
  1142. X    MOVEM.L    STACKOFFSET2(SP),D0-D2
  1143. X    NEWSYS2    ReadLocation
  1144. X
  1145. X    GLUE2    Format
  1146. X    MOVEM.L    STACKOFFSET2(SP),A0-A2
  1147. X    NEWSYS2    Format
  1148. X
  1149. X    GLUE    FileRequester
  1150. X    MOVE.L    STACKOFFSET(SP),A0
  1151. X    NEWSYS    FileRequester
  1152. X
  1153. X    GLUE    ColorRequester
  1154. X    MOVE.L    STACKOFFSET(SP),D0
  1155. X    NEWSYS    ColorRequester
  1156. X
  1157. X    GLUE    ExtendedColorRequester
  1158. X    MOVE.L    STACKOFFSET(SP),A0
  1159. X    NEWSYS    ExtendedColorRequester
  1160. X
  1161. X    GLUE2    DrawBox
  1162. X    MOVE.L    STACKOFFSET2(SP),A0
  1163. X    MOVEM.L    STACKOFFSET2+4(SP),D0-D3
  1164. X    NEWSYS2    DrawBox
  1165. X
  1166. X    GLUE2    MakeButton
  1167. X    MOVEM.L    STACKOFFSET2(SP),A0-A2
  1168. X    MOVEM.L    STACKOFFSET2+12(SP),D0-D2
  1169. X    NEWSYS2    MakeButton
  1170. X
  1171. X    GLUE2    MakeScrollBar
  1172. X    MOVE.L    STACKOFFSET2(SP),A0
  1173. X    MOVEM.L    STACKOFFSET2+4(SP),D0-D3
  1174. X    NEWSYS2    MakeScrollBar
  1175. X
  1176. X    GLUE    PurgeFiles
  1177. X    MOVE.L    STACKOFFSET(SP),A0
  1178. X    NEWSYS    PurgeFiles
  1179. X
  1180. X    GLUE    GetFontHeightAndWidth
  1181. X    NEWSYS    GetFontHeightAndWidth
  1182. X
  1183. X    GLUE    MakeGadget
  1184. X    MOVEM.L    STACKOFFSET(SP),D0/A0-A1
  1185. X    EXG.L    D0,A0        ;Parameter are on the stack in the order A0,D0,A1.
  1186. X    NEWSYS    MakeGadget
  1187. X
  1188. X    GLUE    MakeString
  1189. X    MOVE.L    STACKOFFSET(SP),A0
  1190. X    MOVEM.L    STACKOFFSET+4(SP),D0-D1
  1191. X    NEWSYS    MakeString
  1192. X
  1193. X    GLUE    MakeProp
  1194. X    MOVE.L    STACKOFFSET(SP),A0
  1195. X    MOVEM.L    STACKOFFSET+4(SP),D0-D1
  1196. X    NEWSYS    MakeProp
  1197. X
  1198. X    GLUE2    LinkGadget
  1199. X    MOVEM.L    STACKOFFSET2(SP),A0-A1/A3
  1200. X    MOVEM.L    STACKOFFSET2+12(SP),D0-D1
  1201. X    NEWSYS2    LinkGadget
  1202. X
  1203. X    GLUE2    LinkStringGadget
  1204. X    MOVEM.L    STACKOFFSET2(SP),A0-A3
  1205. X    MOVEM.L    STACKOFFSET2+16(SP),D0-D3
  1206. X    NEWSYS2    LinkStringGadget
  1207. X
  1208. X    GLUE2    LinkPropGadget
  1209. X    MOVEM.L    STACKOFFSET2(SP),A0/A3
  1210. X    MOVEM.L    STACKOFFSET2+8(SP),D0-D4
  1211. X    NEWSYS2    LinkPropGadget
  1212. X
  1213. X    GLUE2    GetString
  1214. X    MOVEM.L    STACKOFFSET2(SP),A0-A2
  1215. X    MOVEM.L    STACKOFFSET2+12(SP),D0-D1
  1216. X    NEWSYS2    GetString
  1217. X
  1218. X    GLUE    RealTimeScroll
  1219. X    MOVE.L    STACKOFFSET(SP),A0
  1220. X    NEWSYS    RealTimeScroll
  1221. X
  1222. X    GLUE    TextRequest
  1223. X    MOVE.L    STACKOFFSET(SP),A0
  1224. X    NEWSYS    TextRequest
  1225. X
  1226. X    GLUE    GetLong
  1227. X    MOVE.L    STACKOFFSET(SP),A0
  1228. X    NEWSYS    GetLong
  1229. X
  1230. X    GLUE    RawKeyToAscii
  1231. X    MOVEM.L    STACKOFFSET(SP),D0-D1
  1232. X    MOVE.L    STACKOFFSET+8(SP),A0
  1233. X    NEWSYS    RawKeyToAscii
  1234. X
  1235. X
  1236. X;         These  routines  are a little bit more work to write glue code for
  1237. X; because  they  use  register  beyond  the  scratch  register  D0-D1/A0-A1.
  1238. X; Therefore  these  registers  have  to be saved before values can be loaded
  1239. X; into them.
  1240. X
  1241. X
  1242. X
  1243. X;         This  code was designed to minimize the overhead of the individual
  1244. X; pieces of glue code for the individual routines.  With this 'helper' code,
  1245. X; all  the  glue  code for each routine has to do is load the registers from
  1246. X; the  stack  (no  way  to  avoid that), push the _LVO offset onto the stack
  1247. X; (hard  to  avoid  doing  something like that) and then branch down to this
  1248. X; routine.
  1249. X
  1250. X    XDEF    JumpIt,StackCleanup    ;Make these visible to a debugger.
  1251. X
  1252. XJumpIt
  1253. X    PEA    StackCleanup        ;Push the address of the code that restores A6.
  1254. X    MOVE.L    4(sp),-(sp)        ;Push the _LVO offset further down the stack
  1255. X    MOVE.L    A6,8(sp)        ;so that the old value of A6 can be stored
  1256. X                    ;above it.
  1257. X    MOVE.L    _ReqBase,A6
  1258. X    MOVE.L    D0,-(sp)
  1259. X    MOVE.L    A6,D0
  1260. X    ADD.L    D0,4(sp)        ;Add _ReqBase to the _LVO offset so when you go
  1261. X                    ;return, you'll branch to the routine.
  1262. X    MOVE.L    (sp)+,D0
  1263. X    RTS
  1264. XStackCleanup
  1265. X    MOVE.L    (sp)+,A6
  1266. X    RTS
  1267. X
  1268. X
  1269. X
  1270. X;;;;;         The  version  of this code for Aztec is really simple, since Aztec
  1271. X;;;;; doesn't currently expect you to preserve A6.
  1272. X;;;;
  1273. X;;;;JumpIt
  1274. X;;;;    MOVE.L    _ReqBase,A6
  1275. X;;;;    MOVE.L    D0,-(sp)
  1276. X;;;;    MOVE.L    A6,D0
  1277. X;;;;    ADD.L    D0,4(sp)        ;Add _ReqBase to the _LVO offset so when you go
  1278. X;;;;                    ;return, you'll branch to the routine.
  1279. X;;;;    MOVE.L    (sp)+,D0
  1280. X;;;;    RTS
  1281. X
  1282. X
  1283. X
  1284. X
  1285. X
  1286. X
  1287. X
  1288. XSureText    DC.B    "  Ok  ",0
  1289. XCancelText    DC.B    "Cancel",0
  1290. XResumeText    DC.B    "Resume",0
  1291. X
  1292. X    even
  1293. X
  1294. X
  1295. X    GLUE    SimpleRequest
  1296. X    MOVE.L    STACKOFFSET(SP),A0
  1297. X    LEA    STACKOFFSET+4(SP),A1
  1298. X    BRA    SimpleRequest
  1299. X
  1300. X    GLUE    TwoGadRequest
  1301. X    MOVE.L    STACKOFFSET(SP),A0
  1302. X    LEA    STACKOFFSET+4(SP),A1
  1303. X    BRA    TwoGadRequest
  1304. X
  1305. X
  1306. X
  1307. XsrRegs    REG    A2-A4/D2
  1308. X
  1309. X;----------------------------------------------------
  1310. X    public    TwoGadRequest
  1311. XTwoGadRequest:
  1312. X;Bool=TwoGadRequest(String,Controls)
  1313. X;                     A0      A1
  1314. X
  1315. X    MOVEM.L    srRegs,-(sp)
  1316. X    LEA.L    SureText,A2
  1317. X    LEA.L    CancelText,A3
  1318. X    BRA.S    TheRequest
  1319. X
  1320. X    public    SimpleRequest
  1321. XSimpleRequest:
  1322. X
  1323. X;SimpleRequest(Text,Controls)
  1324. X;               A0    A1
  1325. X; This is just a method of telling a user something. It just calls MultiRequest
  1326. X; with no gadgets.
  1327. X
  1328. X    MOVEM.L    srRegs,-(sp)
  1329. X    SUBA.L    A2,A2
  1330. X    LEA.L    ResumeText,A3
  1331. X
  1332. XTheRequest
  1333. X
  1334. X    MOVE.L    _ReqBase,A6    ;Load A6 from the data segment _before_ tromping on A4.
  1335. X
  1336. X    SUB.W    #TR_SIZEOF,SP        ;get some temporary storage.
  1337. X
  1338. X    MOVE.L    SP,A4
  1339. X    MOVEQ    #TR_SIZEOF/2-1,D2    ;because the stack is almost never clear.
  1340. X1$    CLR.W    (A4)+
  1341. X    DBF    D2,1$
  1342. X
  1343. X    MOVE.L    A0,TR_Text(SP)
  1344. X    MOVE.L    A1,TR_Controls(SP)
  1345. X    MOVE.L    A2,TR_PositiveText(SP)
  1346. X    MOVE.L    A3,TR_NegativeText(SP)
  1347. X
  1348. X    MOVE.W    #$FFFF,TR_KeyMask(SP)
  1349. X
  1350. X    MOVE.L    SP,A0
  1351. X    JSR    _LVOTextRequest(A6)
  1352. X
  1353. X    ADD.W    #TR_SIZEOF,SP
  1354. X
  1355. X    MOVEM.L    (sp)+,srRegs
  1356. X    RTS
  1357. X
  1358. X
  1359. X
  1360. X    END
  1361. END_OF_FILE
  1362. if test 5221 -ne `wc -c <'reqglue.asm'`; then
  1363.     echo shar: \"'reqglue.asm'\" unpacked with wrong size!
  1364. fi
  1365. # end of 'reqglue.asm'
  1366. fi
  1367. if test -f 'reqproto.h' -a "${1}" != "-c" ; then 
  1368.   echo shar: Will not clobber existing file \"'reqproto.h'\"
  1369. else
  1370. echo shar: Extracting \"'reqproto.h'\" \(642 characters\)
  1371. sed "s/^X//" >'reqproto.h' <<'END_OF_FILE'
  1372. X/* Prototypes for the req.library for use with Lattice. */
  1373. X
  1374. X#ifndef __NOPROTO
  1375. X#ifndef __PROTO
  1376. X#define __PROTO(a) a
  1377. X#endif
  1378. X#else
  1379. X#ifndef __PROTO
  1380. X#define __PROTO(a) ()
  1381. X#endif
  1382. X#endif
  1383. X
  1384. X
  1385. Xvoid __stdargs  SimpleRequest __PROTO((char *,...));
  1386. Xint  __stdargs  TwoGadRequest __PROTO((char *,...));
  1387. Xint  __stdargs  FileRequester __PROTO((struct FileRequester *));
  1388. Xvoid __stdargs  Center __PROTO((struct NewWindow *,int,int));
  1389. Xvoid __stdargs  PurgeFiles __PROTO((struct FileRequester *));
  1390. Xint  __stdargs  ColorRequester __PROTO((long));
  1391. Xint  __stdargs    TextRequest __PROTO((struct TRStructure *));
  1392. Xchar __stdargs    RawKeyToAscii __PROTO((long,long,APTR));
  1393. X
  1394. END_OF_FILE
  1395. if test 642 -ne `wc -c <'reqproto.h'`; then
  1396.     echo shar: \"'reqproto.h'\" unpacked with wrong size!
  1397. fi
  1398. # end of 'reqproto.h'
  1399. fi
  1400. if test -f 'showoffreq.uu' -a "${1}" != "-c" ; then 
  1401.   echo shar: Will not clobber existing file \"'showoffreq.uu'\"
  1402. else
  1403. echo shar: Extracting \"'showoffreq.uu'\" \(11126 characters\)
  1404. sed "s/^X//" >'showoffreq.uu' <<'END_OF_FILE'
  1405. Xbegin 666 showoffreq
  1406. XM```#\P`````````"``````````$```<4```"O0```^D```<42.=^_B1()`!)>
  1407. XM^0`````L>``$1_D```&(<@`@/````EM@`B;!4<C__"E/`<@I3@'`0JP!Q'``.
  1408. XM(CP``#``3J[^SD/Z`5IP`$ZN_=@I0`H@9@9P9&```/PF;@$4*6L`F`&\2JL`E
  1409. XMK&=H(`^0KP`$!H````"`*4`!C"!K`*S1R-'((F@`$-/)T\D@`G(`$ADI20'0F
  1410. XMT(%2@$)G4H`"0/_^G\!5@$)W"``@`E.`U($?L@``(`!3@E'(__8?O``@(`!3>
  1411. XM@A^Q(``@`%'*__@B3R\)8'(I:P`Z`8QP?U*`T:P!C$'K`%Q.KOZ`0>L`7$ZN+
  1412. XM_HPI0`'$+P`D0"`J`"1G$BQL"B`@0"(H```I00&\3J[_@B(J`"!G&B0\```#2
  1413. XM[4ZN_^(I0`',9PKEB"!`)V@`"`"D(&P!Q"\(2&P!B"!H`"0I:``$`=!.N@SZ>
  1414. XM3KH56G``8`0@+P`$+P`@+`&T9P0@0$Z03KH40BQX``0B;`H@3J[^8DZZ#-!*_
  1415. XMK`'$9QHB+`',9P1.KO_<+'@`!$ZN_WPB;`'$3J[^AB`?+FP!R$S??WY.=61OA
  1416. XM<RYL:6)R87)Y`$Y5_V!"+?]@0>W_8"E(`?Y![`-R*4@!]D'L`U0I2`'Z<`0IZ
  1417. XM0`(.<`(Y0`(2.4`"%DAL`?!.N@I$6$]*@&<02&W_8$AZ`#1.N@OD4$]@"DAZ/
  1418. XM`$1.N@O86$].74YU4VAO=R!O9F8@<F5Q=65S=&5R(&QI8G)A<GDN`%EO=2!S3
  1419. XM96QE8W1E9"!T:&4@9FEL92`G)7,G+@!9;W4@9&ED;B=T('-E;&5C="!A(&9I2
  1420. XM;&4N`"`@("`@4VEM<&QE4F5Q=65S="@I("!I<R`@82`@=&EN>2!B:70@;V8*B
  1421. XM9VQU92`@8V]D92`@=VAI8V@@('!A<W-E<R`@82!S:6YG;&4@=&5X=`IS=')I>
  1422. XM;F<@("AW:71H("!O<'1I;VYA;"`@<')I;G1F*"D@('-T>6QE"F9O<FUA='1ID
  1423. XM;F<I('1O('1H92!497AT4F5Q=65S="@I(')O=71I;F4*:6X@('1H92`@;&EB@
  1424. XM<F%R>2X@("!4:&4@(%-I;7!L95)E<75E<W0H*0IR;W5T:6YE("!C86X@(&)E:
  1425. XM("!E87-I;'D@;6]D:69I960@=&\@9FET"GEO=7(@;W=N('!E8W5L:6%R('!U5
  1426. XM<G!O<V5S+@!N;P``>65S`$IU<W0@=&5S=&EN9R!T:&4@='=O(&=A9&=E="!RU
  1427. XM97%U97-T97(N``!9;W4@<F5S<&]N9&5D('=I=&@@82`G)7,G('1O('1H:7,@;
  1428. XM<F5Q=65S=&5R+@``66]U(')E86QL>2!S:&]U;&0@=7-E(&ET+@!%>&-E;&QE]
  1429. XM;G0@8VAO:6-E+B`@66]U(&AA=F4@9V]O9"!T87-T92X`3V@@8V]M92!O;F4L=
  1430. XM(&UA:V4@=7`@>6]U<B!M:6YD+@I9;W4@=V]N)W0@<F5G<F5T(&-H;V]S:6YGA
  1431. XM("=Y97,G+@``("`@("!7;W5L9"!Y;W4@=7-E('1H92!R97%U97-T97(@;&EBZ
  1432. XM<F%R>0II;B!Y;W5R('!R;V=R86US/P``4&5R:&%P<RXN+@``3V@@>65A:"P@_
  1433. XM9F]R('-U<F4A``!-971H:6YK<R!N;W0N`%-H;W<@;V9F('1E>'0@<F5Q=65S_
  1434. XM=&5R+@``9F]N=',Z``!9;W4@<V5L96-T960@=&AE(&9O;G0@)R5S)RP*<VEZ-
  1435. XM92`E9"P@<W1Y;&4@)60N``!9;W4@9&ED;B=T('-E;&5C="!A(&9O;G0N`%1H;
  1436. XM92!D969A=6QT('1E>'0N`%1Y<&4@86YY=&AI;F<L('1H96X@:&ET(')E='5R3
  1437. XM;BX`22=L;"!B970@>6]U('1Y<&5D.@HG)7,G+@!9;W4@9&ED;B=T(&5N=&5RO
  1438. XM(&%N>71H:6YG(0``16YT97(@82!N=6UB97(N`%EO=2!E;G1E<F5D('1H92!NL
  1439. XM=6UB97(@)R5L9"<N`%EO=2!D:61N)W0@96YT97(@82!N=6UB97(N``!5<V5RX
  1440. XM(&%B;W)T(')E<75E<W1E9"X`4VAO=R!T:&4@9FEL92!R97%U97-T97(N``!3;
  1441. XM:&]W('1H92!C;VQO<B!R97%U97-T97(N`%-H;W<@82!S:6UP;&4@=&5X="!R?
  1442. XM97%U97-T97(N`%-H;W<@82!T=V\@9V%D9V5T(')E<75E<W1E<BX``%-H;W<@S
  1443. XM82!T:')E92!G861G970@<F5Q=65S=&5R+@``4VAO=R!T:&4@9F]N="!R97%U)
  1444. XM97-T97(N``!3:&]W('1H92`G9V5T('1E>'0G(')E<75E<W1E<BX``%-H;W<@5
  1445. XM=&AE("=G970@;G5M8F5R)R!R97%U97-T97(N``!%>&ET('1H92!D96UO+@``T
  1446. XM:6YT=6ET:6]N+FQI8G)A<GD`4F5Q=6ER97,@,2XR(&]P97)A=&EN9R!S>7-TC
  1447. XM96TN``!G<F%P:&EC<RYL:6)R87)Y``!#;W5L9&XG="!O<&5N(&=R87!H:6-SW
  1448. XM+@!R97$N;&EB<F%R>0!#;W5L9&XG="!O<&5N('1H92!R97$@;&EB<F%R>2X`W
  1449. XM`$-O=6QD;B=T(&]P96X@<V-R965N+@!#;W5L9&XG="!O<&5N('=I;F1O=RX`8
  1450. XM2'@``4ZZ!)!83TYU2'KZL$ZZ!BI83TYU2'K[ODZZ!B@B`$C!Y8%![`!0+K`8*
  1451. XM`$AZ^]!.N@8(4$].=4Y5_]!!^OQR*TC_TI'(*TC_VD/Z_*`K2?_>0_K\I"M)$
  1452. XM_^)#^ORP*TG_YD/Z_+8K2?_J.WP`P/_N<`$[0/_P<@`[0?_R.T#_]#M!__8K7
  1453. XM2/_X*TC__$AM_]).N@5((@!(P>6!0>P`6"ZP&`!.N@663EU.=4Y5_V!(>OR$I
  1454. XM2&W_8$ZZ$2Y"+?_B<`R!K`020>W_8"E(`_I![?_B*4@#_CE\``($'$AL`_1.V
  1455. XMN@.H3^\`#$J`9R)P`#`L!&1R`#(L!&8O`2\`2&W_XDAZ_#Q.N@4V3^\`$&`*:
  1456. XM2'K\7DZZ!2A83TY=3G5.5?^T2'K\9DAM_[5.NA"^2'@`2TAX`#)"ITAZ_&)(M
  1457. XM;?^U3KH$<D_O`!Q*@&<02&W_M4AZ_&I.N@3H4$]@"DAZ_'A.N@3<6$].74YU[
  1458. XM3E7_W$'Z_((K2/_>*WP```32_^(K?/_^>6#_YBM\``&&H/_JD<@K2/_R0FW_I
  1459. XM]BM(__@K2/_\2&W_WDZZ!$)83TJ`9Q`O+?_N2'K\3DZZ!(903V`*2'K\8$ZZL
  1460. XM!'I83TY=3G4O"R9O``A*K`'@9PP@;`'@+&P!U$ZN_[A*K`'D9PP@;`'D+&P!9
  1461. XMU$ZN_[Y*K`'<9QY(;`'P3KH#"DAL`_1.N@,"4$\B;`'<+'@`!$ZN_F)*K`'8T
  1462. XM9PPB;`'8+'@`!$ZN_F)*K`'49PPB;`'4+'@`!$ZN_F(@"V<(+PM.N@=@6$]"O
  1463. XMITZZ"/!83R9?3G5(>OOD80#_<%A/3G4@;`'H(6P![`"X0J=A`/]<6$].=4Y5*
  1464. XM_\`O`D/Z_-!P(2QX``1.KOW8*4`!U&8*2'K\SF$`_S983T/Z_.1P(2QX``1.>
  1465. XMKOW8*4`!V&8*2'K\XF$`_QA83T/Z_/!P`"QX``1.KOW8*4`!W&8*2'K\Z&$`#
  1466. XM_OI83T'L```L;`'43J[_.BE``>1F"DAZ_.QA`/[>6$]";?_^8'`P+?_^(@##U
  1467. XM_`!D0>P%6-'!<@'"0,/\`4!T%-*"2,%(P$J`:@)2@.*`+T$`""("3KH)LG(\5
  1468. XMT(%(P#(M__Y(P>>!+P`O+P`,2&P`($/L`&0O,1@`+P@O2``83KH"`D_O`!0PR
  1469. XM+?_^(&\`!#%``"92;?_^,"W__DC`<@FP@66$.7P`%`A^,"P(@$C`(CP```*`B
  1470. XMDH!*@6H"4H'B@3E!"'PI;`'D`#Y![``@+&P!U$ZN_S0I0`'@2H!F"DAZ_#QA]
  1471. XM`/X86$^3R2QX``1.KO[:*4`!Z"!`*6@`N`'L(6P!X`"X(&P!X"!H`%8L>``$6
  1472. XM3J[^@"!L`>`@:`!63J[^C"!`0^W_RG(,(MA1R?_\(D!.KOZ&(&W_YC`H`"8BE
  1473. XM`$C!YX%![`!D('`8!$Z08+8@;P`$3.\``P`(2'C_XF```=9,[P`#``1(>/_<P
  1474. XM8``!R$CG.#),[P`'`!PL>0```=Q.KO_63-],'$YU2.<X,DSO``<`'"QY```!F
  1475. XMW$ZN_]!,WTP<3G5(YS@R3.\'```<+'D```'<3J[_RDS?3!Q.=2!O``1(>/^L/
  1476. XM8``!;B`O``1(>/^F8``!8B!O``1(>/]`8``!5DCG.#(@;P`<3.\`#P`@+'D`F
  1477. XM``'<3J[_H$S?3!Q.=4CG.#),[P<``!Q,[P`'`"@L>0```=Q.KO^:3-],'$YU<
  1478. XM2.<X,B!O`!Q,[P`/`"`L>0```=Q.KO^43-],'$YU(&\`!$AX_XY@``#N2'C_"
  1479. XMB&```.9,[P,!``3!B$AX_X)@``#6(&\`!$SO``,`"$AX_WQ@``#$(&\`!$SO7
  1480. XM``,`"$AX_W9@``"R2.<X,DSO"P``'$SO``,`*"QY```!W$ZN_W!,WTP<3G5(^
  1481. XMYS@R3.\/```<3.\`#P`L+'D```'<3J[_:DS?3!Q.=4CG.#),[PD``!Q,[P`?]
  1482. XM`"0L>0```=Q.KO]D3-],'$YU2.<X,DSO!P``'$SO``,`*"QY```!W$ZN_UY,?
  1483. XMWTP<3G4@;P`$2'C_6&`F(&\`!$AX_U)@'"!O``1(>/],8!),[P`#``0@;P`,'
  1484. XM2'C_1F````)(>0``#;HO+P`$+TX`""QY```!W"\`(`[1KP`$(!].=2Q?3G4@I
  1485. XM($]K("``0V%N8V5L`%)E<W5M90``(&\`!$/O``A@&B!O``1#[P`(8````DCGV
  1486. XM(#A%^O_.1_K_T6`*2.<@.)7*1_K_S"QY```!W)[\`"XH3W060EQ1RO_\+H@OU
  1487. XM20`$+TH`$"]+`!0_?/__`!P@3TZN_U+>_``N3-\<!$YU3G%.=4YU3E7_[$CG-
  1488. XM+Q`N+P`T)F\`."@'<#'`JP`89P9P_V```G`(*P`'`!I6P$0`2(!(P"P`2JL`]
  1489. XM%&8``(0(*P`"`!MF>G``)T``#'+_OH%G``)"+PM.N@H^6$]*@&<,".L`!0`;M
  1490. XM</]@``(J".L``0`;2@9G#B`K`!0B`$2!)T$`#&`(("L`%"=```Q3JP`,;18@P
  1491. XM:P`$0^@``2=)``0@!Q"`<@`2`&`2(`=R`!(`+PLO`6$`_U)03R(`(`%@``'6<
  1492. XM""L``@`;9UAP_[Z`9@9P`&```<(@!QM`__]*!F<B<@J^@68<<@(O`4AZ`;(O9
  1493. XM*P`<*T'_\$ZZ!Q!/[P`,*@!@&G(!+P%(;?__+RL`'"M!__!.N@;T3^\`#"H`,
  1494. XM?O]@``#@".L``0`;2@9G4G#_OH!G3%2K``QR"KZ!9B8@:P`$0^@``2=)``00&
  1495. XMO``-(BL`#$J!:PHO"R\`80#^KE!/4JL`#"!K``1#Z``!)TD`!"`'$(`B*P`,_
  1496. XM2H%K``$<?O\@*P`$D*L`$"M`__!G<@@K``8`&F=22'@``D*G+RL`'$ZZ`>1/&
  1497. XM[P`,*T#_[$H&9SA3K?_L;3)"IR\M_^PO*P`<3KH!Q$AX``%(;?_]+RL`'$ZZM
  1498. XM"GA/[P`82JP!H&8*$"W__7(:L`%GR"\M__`O*P`0+RL`'$ZZ!A1/[P`,*@!@E
  1499. XM`GH`</^Z@&8(".L`!0`;8`RZK?_P9P8(ZP`$`!M*!F<.(BL`%"0!1((G0@`,M
  1500. XM8!@(*P`"`!MG"'(`)T$`#&`((BL`%"=!``P@:P`0)T@`!+Z`9RY3JP`,;18@H
  1501. XM:P`$0^@``2=)``0@!Q"`<@`2`&`2(`=R`!(`+PLO`6$`_9!03R(`<##`JP`8C
  1502. XM9P1P_V`,</^X@&8$<`!@`B`$3-\(]$Y=3G4-"@````````````!P84Y5__A(L
  1503. XMYP,P)F\`("1O`"0N+P`H($I*&&;\4XB1RBP(($M*&&;\4XB1RR`((DO3P"M)E
  1504. XM__B\AV,"+`<@!B!*8`(2V%.`9/H@;?_X0C!H`"`+3-\,P$Y=3G5(YP$0)F\`B
  1505. XM#'X`'AM*AV<R4ZP`\FT6(&P`ZD/H``$I20#J(`<0@'(`$@!@W"`'<@`2`$ALU
  1506. XM`.8O`4ZZ_,I03R(`8,93K`#R;18@;`#J0^@``2E)`.IP"A"`<@`2`&`02&P`O
  1507. XMYDAX``I.NOR<4$\B`"`!3-\(@$YU``````````!P84CG#Q`N+P`8+"\`'"HO,
  1508. XM`"`O!TZZ`X183R9`(`MF!'#_8!XO!2\&+RL`!$ZZ`:!/[P`,*`!*K`&@9P1P(
  1509. XM_V`"(`1,WPCP3G4``````````'!A2.<#,"XO`!1*AVX&<`!@``"D<`B^@&0"D
  1510. XM+@`@!U:`+@`"1__\1>P`O"92(`MG0"`K``2PAVTRL(=F#"!3)(B?K`#`(`M@7
  1511. XM;B`K``20AW((L(%E%B!+T<<DB"1()),E0``$GZP`P"`+8$PD2R938+P@!R(L0
  1512. XM`3#0@5.`3KH""B(L`3!.N@'B+`!0AB`&5H`L``)&__PO!DZZ`RY83R9`(`MG-
  1513. XM$B\&+PM.N@;>+H=A`/]44$]@`G``3-\,P$YU``````````````````!(YP,0#
  1514. XM+B\`$$?L`,0@"V<T""L``@`;9B@(*P`!`!MG("`K``20JP`0+`!*AF<2+P8O1
  1515. XM*P`0+RL`'$ZZ`S)/[P`,)E-@R"\'3KH&$%A/3-\(P$YU``!(YS<0+B\`'"9O.
  1516. XM`"`L+P`D2JP!N&<$3KH(R$*L`:`B!R0+)@8L;`H@3J[_T"H`</^Z@&8.3J[_S
  1517. XM?"E``:!P!2E`"AP@!4S?".Q.=0``````````````````````````<&%(YS\`0
  1518. XM+B\`'"PO`"`J+P`D2JP!N&<$3KH(:$*L`:`@!5.`(@<D!B8`+&P*($ZN_[XHF
  1519. XM`'#_N(!F#DZN_WPI0`&@<!8I0`H<(`4,@`````)G%@R``````6<(2H!F&"`&+
  1520. XM8!0@!-"&8`XB!W0`=@`L;`H@3J[_ODS?`/Q.=0``2.<W$"XO`!PF;P`@+"\`3
  1521. XM)$JL`;AG!$ZZ!^Q"K`&@(@<D"R8&+&P*($ZN_]8J`'#_NH!F#DZN_WPI0`&@G
  1522. XM<`4I0`H<(`5,WPCL3G4``"\'+B\`"$JL`;AG!$ZZ!ZHB!RQL"B!.KO_<<``N9
  1523. XM'TYU2.<P`"0`)@%(0DA#Q,'&P,#!U$-(0D)"T(),WP`,3G5*@&H``!Y$@$J!_
  1524. XM:@``#$2!80``($2!3G5A```81(!$@4YU2H%J```,1(%A```&1(!.=2\"2$$TK
  1525. XM`68``")(0$A!2$(T`&<```:$P3`"2$`T`(3!,`)(0C(")!].=2\#=A`,00"`X
  1526. XM9```!N&944,,00@`9```!NF964,,02``9```!N6954-*06L```;CF5-#-`#FJ
  1527. XMJ$A"0D+FJDA#@,$V`#`"-`-(0<3!D()D```(4T/0@63^<@`R`TA#Y[A(0,%!A
  1528. XM)A\D'TYU+P<N+P`(<``I0`&@2H=K(KZL`*QL'"`'YX!![`C<2K`(`&<.(`?G`
  1529. XM@$'L"-S1P"`(8`AP"2E`"AQP`"X?3G4``````````````````$CG`#(F;`HD;
  1530. XM(`MG%"13(DL@*P`(+'@`!$ZN_RXF2F#HD<@I2`HH*4@*)$S?3`!.=4CG`3(N+
  1531. XM+P`4<`S>@"`'<@`L>``$3J[_.B9`(`MF!'``8#HG1P`(1>P*)"!J``0G2``$N
  1532. XMD<@FB$J29@(DBTJJ``1G!B)J``0BBR5+``1*K`"P9@0I2P"P0>L`#"`(3-],;
  1533. XM@$YU``````````````````!(YP<P+B\`&"9O`!PL+P`@+P=.NO\`6$\D0"`*\
  1534. XM9@1P_V`V""H``P`#9Q!(>``"0J<O!TZZ^TA/[P`,+P8O"R\J``1.NORD3^\`&
  1535. XM#"H`2JP!H&<$</]@`B`%3-\,X$YU``!.5?_P2.<A,B9O`"P,K````"`*:FP`5
  1536. XM`(80$W(@L`%G#'()L`%G!G(*L`%F!%*+8.A*$V=H("P*:N6`4JP*:D'L"G+1Q
  1537. XMP"1(<"*P$V8F4HLDBTH39PIP(K`39P12BV#R2A-F#$AX``%.N@(D6$]@GD(;6
  1538. XM8)HDBTH39Q@0$W(@L`%G$'()L`%G"G(*L`%G!%*+8.1*$V8"8`9"&V``_W)*;
  1539. XMK`IJ9@8@;`'$8`1![`IR*4@*;DJL"FIF?$/Z`21-[`HP+-DLV2S9+-D\D2)LC
  1540. XM`<0@:0`D2'@`*"\H``1(;`HP3KKY9D_O``PL;`H@0>P*,"(()#P```/N3J[_S
  1541. XMXBE`".`I0`CH<A`I00CD*4`(\"E!".SE@"M`__`L>``$D\E.KO[:(&W_\")`8
  1542. XM(V@`"`"D?@`K0/_T8"HL;`H@3J[_RBE`".!.KO_$*4`(Z$'Z`*8B""0\```#[
  1543. XM[4ZN_^(I0`CP?A`@!P!`@`&!K`C<(`<`0(`"@:P(Y`"L``"``PCL2JP!+&<$E
  1544. XM<`!@!B`\``"``"X`0JP`X"`'`$```2E``-QP`2E``0(@!P!```(I0`#^<`(IC
  1545. XM0`$D(`<`0`"`*4`!($'Z`FXI2`&X+RP*;B\L"FI.NO&B0I=.NOID3.U,A/_<+
  1546. XM3EU.=6-O;CHQ,"\Q,"\S,C`O.#`O`"H`````````````````2.<P,BQO`#@@1
  1547. XM;P`8(F\`'"1O`"`F;P`D("\`*"(O`"PD+P`P)B\`-$ZN_J1,WTP,3G4``"\+^
  1548. XM)F\`"$JK`!1G#`@K``,`&V8$<`!@-B\L`31.NOD>6$\G0``$)T``$$J`9@IP\
  1549. XM#"E`"AQP_V`6)VP!-``4<//!JP`8<``G0``,)T``""9?3G4``````````'!AN
  1550. XM2.<'`"XO`!`@+`"L4X`L`$I&:S`@!DC`YX!![`C<*C`(`$H%9QH(!0`$9A0@(
  1551. XM!DC`YX!![`C<+S`(!$ZZ^NA83U-&8,PO!TZZY]A83TS?`.!.=0``(F\`""!OA
  1552. XM``0@"1#99OQ.=4Y5_^A(YP$R+B\`-$J';@9P_V```-)P"+Z`9`(N`"`'5H`N3
  1553. XM``)'__PD;0`(("T`"-"'WZP`P$'L`+PF4"M`__`K2/_T(`MG``"0($L@*P`$/
  1554. XMT<`K2/_L(FW_\+?)8Q`DBR5'``0L;?_T+(IP`&!XM\EF&BQ3)(X@*P`$(@#2]
  1555. XMAR5!``0L;?_T+(IP`&!:M<AD")^L`,!P_V!.M<AF+$J39PX@4[/(8PB?K`#`S
  1556. XM</]@.-^K``1*DV<.L]-F"B`I``31JP`$)I%P`&`>*TO_]"MM_^S_Z"938`#_Z
  1557. XM;B!M__0@BD*2)4<`!'``3-],@$Y=3G4``$CG!S`N+P`8)F\`'"PO`"`O!TZZV
  1558. XM^L!83R1`(`IF!'#_8!XO!B\++RH`!$ZZ^5A/[P`,*@!*K`&@9P1P_V`"(`5,C
  1559. XMWPS@3G4``$Y5_YA(YS,"?@`@;`'0'BC__W!/OH!O`BX`(`=#[?^O8`(2V%.`+
  1560. XM9/I"-7BO+'@`!)/)3J[^VBM`_Z8@0$JH`*QG4B(H`*SE@2)!+"D`.$CM``+_=
  1561. XMGDJ&9@0L*`"@2H9G-"QL"B`B!D'Z`+(D"'8+3J[_T"!'4H<@"!N\``H(KRQL>
  1562. XM"B`B!B8'0>W_KR0(3J[_T'#_8%(L>``$0_H`C'``3J[]V"M`_YIF!'#_8#I!=
  1563. XM[?^O*4@!6"\M_YI(>``\2'@`^G``+P`O`$AL`71(;`%@2&P!3$*G3KK\_D_O&
  1564. XM`"13@&<$</]@`G``3-]`S$Y=3G4J*B!5<V5R($%B;W)T(%)E<75E<W1E9"`J/
  1565. XM*@``0T].5$E.544``$%"3U)4`"HJ*B!"<F5A:SH@`&EN='5I=&EO;BYL:6)R>
  1566. XM87)Y`````````'!A+P=P`"(\```P`"QX``1.KO[.+@`"AP``,`!*AV<@2JP!W
  1567. XMN&<:(&P!N$Z02H!F`F`.0JP!N$AX`!1.NOSJ6$\N'TYU8;Q.=0`````#[```K
  1568. XM``$````````-G`````X````!```+X```"_H```P4```,5@``#'8```R4```,9
  1569. XM_```#1P```T\```-7```#:H```X$````%`````H````````#\@```^H```!B"
  1570. XM``````*``,@``P`!@```#P````````($`````````````````H``R/__````K
  1571. XM0```&0````````````````````````````!/`!X"@`#(``\```-H```#;```Y
  1572. XM`\8```/@```$"```!>@```&H```&`@``!Y@```8<```'I```!CH```>P```&_
  1573. XM6```!](```9X```(1```!I(```BT```&L@``"0````;4```)^````"@`````3
  1574. XM`````````````````````````.8`````````````````````````````````F
  1575. XM``````````$(````````````````````````````````````````````````)
  1576. XM``````````````````````````````````````````"`````!`````(`__\`$
  1577. XM```.``X````````;M@````#__P````0`!``````````````!./__````!``$R
  1578. XM````````&](`````__\````$``0````````;W`````````/L````&P``````T
  1579. XM``&````!;````40```"H````I````*````"<````F````)0```"0````C```#
  1580. XM`(@```"$````@````'P```!X````=````'````!L````:````&0```!@````\
  1581. XM7````%@```!4````4````!0````#`````0```5P```#F````Q`````````/RL
  1582. X``
  1583. Xend
  1584. Xsize 7920
  1585. END_OF_FILE
  1586. if test 11126 -ne `wc -c <'showoffreq.uu'`; then
  1587.     echo shar: \"'showoffreq.uu'\" unpacked with wrong size!
  1588. fi
  1589. # end of 'showoffreq.uu'
  1590. fi
  1591. echo shar: End of archive 1 \(of 3\).
  1592. cp /dev/null ark1isdone
  1593. MISSING=""
  1594. for I in 1 2 3 ; do
  1595.     if test ! -f ark${I}isdone ; then
  1596.     MISSING="${MISSING} ${I}"
  1597.     fi
  1598. done
  1599. if test "${MISSING}" = "" ; then
  1600.     echo You have unpacked all 3 archives.
  1601.     rm -f ark[1-9]isdone
  1602. else
  1603.     echo You still need to unpack the following archives:
  1604.     echo "        " ${MISSING}
  1605. fi
  1606. ##  End of shell archive.
  1607. exit 0
  1608. -- 
  1609. Mail submissions (sources or binaries) to <amiga@uunet.uu.net>.
  1610. Mail comments to the moderator at <amiga-request@uunet.uu.net>.
  1611. Post requests for sources, and general discussion to comp.sys.amiga.
  1612.